| Author |
Topic |
|
csadlier
Starting Member
1 Post |
Posted - 2006-07-13 : 16:16:41
|
| Why does this procedure errors with an Error 137. You must declare variable @how?CREATE PROCEDURE GetInvoice @Invoice varchar(30) ASDECLARE @TSQL varchar(8000)DECLARE @how TABLE( Z_ID varchar(30), SALES_REPORT_CUSTOMER varchar(50) , SHIP_DATE smalldatetime, INV_AMT decimal(12, 2), ORDER_TYPE varchar(10) , SALES_MARKET_SEGMENT varchar(75) , ORDER_DATE smalldatetime , PONO varchar(25) , POST_DATE smalldatetime , SUM_MISC_AMT float , WPS varchar(50), TERMS_DESC varchar(75), BOL varchar(50), BILL_TO nvarchar(12) , BILL_NAME varchar(50) , BILL_ADDR1 varchar(50) , BILL_ADDR2 varchar(50) , BILL_CITY varchar(50) , BILL_STATE varchar(15), BILL_ZIP varchar(10) , SHIP_TO varchar(15) , REAL_SHIPTO_NAME varchar(50) , REAL_SHIPTO_ADDRESS1 varchar(50) , REAL_SHIPTO_ADDRESS2 varchar(50) , REAL_SHIPTO_CITY varchar(50) , REAL_SHIPTO_STATE varchar(15) , REAL_SHIPTO_ZIP varchar(10) , SVI_DESC varchar(75) , INV_DATE smalldatetime , COMMENTS varchar(254) , SALESMAN varchar(5) , TAXAMT decimal(10, 2), FGT_AMT decimal(10, 2) , INS decimal(10, 2),Primary Key ( Z_ID)) SELECT @TSQL = 'SELECT * INTO @how h FROM OPENQUERY(UVADVANTAGE, ''SELECT * FROM OW WHERE @ID = ''''' + @Invoice + ''''''')'EXEC(@TSQL)IF @how is null SELECT @TSQL = 'INSERT INTO @how h SELECT * FROM OPENQUERY(UVADVANTAGE, ''SELECT * FROM ROW WHERE @ID = ''''' + @Invoice + ''''''')' EXEC(@TSQL)IF @how is null SELECT @TSQL =' INSERT INTO @how h SELECT * FROM OPENQUERY(UVADVANTAGE, ''SELECT * FROM HOW WHERE @ID = ''''' + @Invoice + ''''''')' EXEC(@TSQL)SELECT * FROM @howGOCarl Sadlier |
|
|
blindman
Master Smack Fu Yak Hacker
2365 Posts |
Posted - 2006-07-13 : 16:23:10
|
@how is a table variable, and exists only within the scope of the procedure that creates it. Your dynamic SQL executes within an independent scope, and is thus unaware of the @how table.To fix this, use a temporary table instead of a table variable. This will be visible within both execution scopes.But you will have to fix this as well: IF @how is null I assume you mean to test if there are no rows in the table? |
 |
|
|
|
|
|