我在尝试执行以下代码时遇到错误,寻找类似的解决方案但无法弄清楚。
DECLARE @TAB_COL_NAME TABLE(idx int identity(1,1), COLUMNNAME VARCHAR(MAX))
DECLARE @TEMPLATE_NAME NVARCHAR(50)
SET @TEMPLATE_NAME = 'MYTABLE1'
INSERT INTO @TAB_COL_NAME EXEC('SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '+@TEMPLATE_NAME)
由于我看到很多说要使用sp_executesql,
我已经尝试过sp_executesql
,
DECLARE @SQL NVARCHAR(100)
DECLARE @TEMPLATE_NAM NVARCHAR(50)
SET @TEMPLATE_NAM = 'MYTABLE1'
SET @SQL = N'SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '+ '@TEMPLATE_NAME'
EXEC sp_executesql @SQL,
'@TEMPLATE_NAME Nvarchar(50)',
@TEMPLATE_NAME = @TEMPLATE_NAM
这给出了错误:Procedure expects parameter '@parameters' of type 'ntext/nchar/nvarchar'.
什么是正确的解决方案?
我不能做到这一点EXEC SQL
吗?
一些答复会有所帮助。