给定一对变量中的表名和列名,我可以在不使用动态 sql 的情况下执行选择查询吗?
例如,我想要比这更好的东西:
CREATE PROCEDURE spTest (@table NVARCHAR(30), @column NVARCHAR(30)) AS
DECLARE @sql NVARCHAR(2000)
SELECT @sql = N'SELECT ' + @column + N' FROM ' + @table
PRINT @sql
EXEC sp_executesql @sql
我想这样做是因为我的动态 sql 版本比非动态版本慢 3 倍(它不支持可编程的表/列名,因此这个问题)。