干净的替代方法是使用sp_executesql()及其处理参数化语句的能力:
DECLARE @test VARCHAR(20) DECLARE @stmt NVARCHAR(100) DECLARE @parm NVARCHAR(100) SET @stmt = N'SELECT @val' /* statement definition */ SET @parm = N'@val VARCHAR(20)' /* parameters definition */ SET @test = 'VALUE' EXECUTE sp_executesql @stmt, @parm, @val = @test
产量:
(no column name) VALUE