動態SQL就是我們可以動態構造SQL代碼,然后再執行這個批處理。有兩種執行動態SQL的方法,分別是EXEC命令和sp_executesql存儲過程。下面是示例代碼。
USE TSQLFundamentals2008;GO-- 動態SQL-- 方法一:EXEC命令(支持普通字符和Unicode字符)DECLARE @sql AS NVARCHAR(100);SET @sql=N'PRINT ''這條消息是動態SQL命令打印的.'';';EXEC(@sql);DECLARE @sql AS NVARCHAR(100);DECLARE @OrderIDs AS NVARCHAR(50)= '10248,10249,10250';SET @sql= N'SELECT * FROM Sales.Orders WHERE orderid IN ('+@OrderIDs+');';EXEC(@sql);-- 方法二:sp_executesql存儲過程(只支持Unicode字符)DECLARE @sql AS NVARCHAR(100);SET @sql= N'SELECT orderid,custid,empid,orderdateFROM Sales.OrdersWHERE orderid=@orderid;';EXEC sys.sp_executesql @stmt= @sql, @params= N'@orderid AS INT', @orderid=10248;
執行結果:
新聞熱點
疑難解答