我希望能够做到这样的事情:
DECLARE @myTable = [database].[dbo].[MyTable]
INSERT INTO @myTable () VALUES ()
SELECT * FROM @myTable
DELETE FROM @myTable
可以这样做吗?
答案 0 :(得分:1)
您必须使用动态SQL。更糟糕的是,你甚至无法将表作为参数传递:
DECLARE @myTable NVARCHAR(MAX) = '[database].[dbo].[MyTable]';
DECLARE @SQL NVARCHAR(MAX) = 'INSERT INTO [myTable](. . .) VALUES (. . .)';
SET @SQL = REPLACE(@SQL, '[myTable]', @myTable);
EXEC sp_executesql @sql;