最近要用到动态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
posted on 2010-12-25 23:07  Kisszoo  阅读(360)  评论(0编辑  收藏  举报