今天我得到了我的数据库名称:
set @databaseNameTXT = 'NewStat1DB';
然后我将数据插入到右表中:
IF @databaseNameTXT = 'NewStat1DB'
BEGIN
INSERT INTO [NewStat1DB] (wStat_id) values(@wStat_id)
END
IF @databaseNameTXT = 'NewStat2DB'
BEGIN
INSERT INTO [NewStat2DB] (wStat_id) values(@wStat_id)
END
如何在t-sql中使用变量并运行它,如:
INSERT INTO [@databaseNameTXT](wStat_id)值(@wStat_id)
由于
答案 0 :(得分:3)
您需要使用dynamic SQL,但需要注意SQL Injection。
数据库,模式,表和列名称不能是变量 - 唯一的方法是使用动态SQL。
例如(这很容易受到SQL注入):
sp_executesql 'INSERT INTO [' + @databaseNameTXT +
'] (wStat_id) values(' + @wStat_id + ');';
我建议阅读链接文章 - 它是对动态SQL主题的综合处理。
答案 1 :(得分:0)
您可以使用动态SQL:
declare @query nvarchar(max)
set @query = 'INSERT INTO ' + QUOTENAME(@databaseNameTXT) + '(wStat_id)
values('+@wStat_id+')'
exec(@query)