2016-07-27 5 views
-1

Ich möchte in der Lage sein, so etwas zu tun:Wie kann ich eine Variable verwenden, die auf eine Klausel in der Tabelle verweist?

DECLARE @myTable = [database].[dbo].[MyTable] 

INSERT INTO @myTable() VALUES() 
SELECT * FROM @myTable 
DELETE FROM @myTable 

dies getan werden kann?

+0

Schauen Sie sich mit 'dynamischen sql'. – sgeddes

+2

fyi: Antworten zu akzeptieren ist Teil der Etikette bei StackOverflow. Siehe [Wie funktioniert die Annahme einer Antwort?] (Http://meta.stackoverflow.com/questions/5234/how-does-accepting-an-answer-work). – HABO

Antwort

1

Sie müssen dynamisches SQL verwenden. Und schlimmer, Sie können nicht einmal die Tabelle als Parameter übergeben:

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;