Arg*_*eph 5 sql-server variables declare sql-server-2008
任何人都可以查看我的陈述......
DECLARE @tblName varchar(MAX),
@strSQL varchar(MAX)
SET @tblName ='SELECT DISTINCT o.name as TableName
FROM sysobjects o
JOIN sysindexes x on o.id = x.id
WHERE o.name LIKE ''%empty%'''
SET @strSQL = 'INSERT INTO @tblName VALUES(''trylng'', ''1'')'
EXEC (@strSQL)
Run Code Online (Sandbox Code Playgroud)
我的错误是......
消息1087,级别15,状态2,行1
必须声明表变量"@tblName".
我想要做的是变量得到表名@tblName
,并插入一些数据@strSQL
变量
例如......结果@tblName
是CustomerInfo
然后在@strSQL
我将使用结果@tblName
作为我的插入命令中的表名.
所以@strSQL
变量将是;
INSERT INTO CustomerInfo VALUES(......)
Run Code Online (Sandbox Code Playgroud)
从我对你的另一个问题的回答中尝试一下:
SELECT TOP 1 @tblName = t.name
FROM sys.tables t
INNER JOIN sys.indexes i on i.object_id = t.object_id
WHERE t.name LIKE '%empty%'
SET @strSQL = 'INSERT INTO ' + @tblName + ' VALUES(''trylng'', ''1'')'
EXEC (@strSQL)
Run Code Online (Sandbox Code Playgroud)
您仍然没有提及您正在使用的 SQL Server 版本。但从 SQL Server 2005 或更高版本开始,您应该停止使用sysobjects
-sysindexes
相反,使用新的sys
而是使用包含或多或少相同信息的
sys
有关新架构中可用内容以及如何充分利用它的更多信息,请参阅 [MSDN:查询 SQL Server 系统目录][1] !
归档时间: |
|
查看次数: |
87687 次 |
最近记录: |