2013-03-29 73 views
1

是否有可能在SQL中做類似的事情?SQL語句作爲參數

DECLARE @t Nvarchar(50) 

SET @t = 'SELECT * FROM KIN_PHON' 

execute @t --?? 
+2

你可以* * - 但我會建議** **反對做這樣的事情?它被稱爲*動態SQL *,可能是一些情況下的天賜之物 - 但在其他情況下完全沒有必要且純粹的開銷。不要只養成這樣做的一切習慣 - 對性能不利,對安全性不利。 –

回答

1

使用exec

DECLARE @t Nvarchar(50) 
SET @t = 'SELECT * FROM KIN_PHON' 
exec (@t) 

或者與參數,sp_executesql

declare @sql nvarchar(max) 
set @sql = 'select * from YourTable where ID = @ID' 
execute sp_executesql @sql, N'@ID int', @ID = 42;