最近要用到动态SQL,就找了下资料,记录下来,以后忘了好用。
-- EXEC 示例: EXEC('SELECT * FROM [table]') -- EXEC sp_executesql 参数传入传出示例: DECLARE @countValue INT DECLARE @columnValue INT SET @columnValue=1 EXEC sp_executesql -- SQL语句,只可为Nvarchar N' SELECT @countValue=COUNT(1) FROM [table] WHERE [columnName1]=@columnValue1 AND [columnName2]=@columnValue2 AND [columnName3]=@columnValue3 ', -- SQL语句参数,只可为Nvarchar N' @countValue INT OUTPUT, @columnValue1 INT, @columnValue2 INT, @columnValue3 INT ', @countValue OUTPUT, -- @countValue INT OUTPUT @columnValue, -- 对应参数2:@columnValue1 INT 2, -- 对应参数3:@columnValue2 INT @columnValue3=3 -- 对应参数4:@columnValue3 INT(注意:使用 @param=value 后,之后的参数也只能为此形式) PRINT @countValue