小编Raj*_*ala的帖子

EXEC sp_executesql 未按预期工作

EXEC SP_EXECUTESQL 给我错误

必须声明表变量“@TABLE”

我们该如何解决这个问题?

TESTTABLE其中包含6个表名。我必须从 TestTABLES 中获取所有表名,并根据匹配条件从所有 6 个表中删除记录。

CREATE PROCEDURE TEST_SCHEMA.TEST_SP
@P_DATE   CHAR(10),
@P_TIME   CHAR(8),
@P_MILSEC CHAR(6),
@P_RECORD   CHAR(1),
@P_NODE     CHAR(2)

AS

BEGIN

DECLARE @SQL AS NVARCHAR(MAX);
DECLARE @zTABLE VARCHAR(10);
DECLARE @ParmDefinition NVARCHAR(MAX);

DECLARE TABLES_LIST CURSOR FOR SELECT TBL_NAME FROM TESTTABLE WITH 
(NOLOCK);

OPEN TABLES_LIST

FETCH FROM TABLES_LIST INTO @zTABLE

WHILE @@FETCH_STATUS = 0  

BEGIN

SET @SQL = N'DELETE FROM @TABLE WHERE DATE = @DATE AND TIME = @TIME AND 
MILSEC = @MILSEC AND RECORD = @RECORD …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server dynamic-sql

2
推荐指数
1
解决办法
2510
查看次数

标签 统计

dynamic-sql ×1

sql ×1

sql-server ×1

t-sql ×1