您需要将列名作为变量传递给存储过程。我尝试至少满足 MSSQL MS 请求,不退出。这是我的要求
DECLARE @COLNAME NVARCHAR(MAX)
SET @COLNAME = 'Student'
DECLARE @TABLE NVARCHAR(MAX)
SET @TABLE = 'IndexData'
DECLARE @QRY NVARCHAR(MAX)
SET @QRY = 'UPDATE '+@TABLE+' SET '+@COLNAME+' = true Where Lastname = Smith'
EXEC SP_EXECUTESQL @QRY
我对 Smith 参数发誓,写的是列名不正确,尽管如果 Smith 是列的值,那么列与它有什么关系
Invalid column name 'Smith'.
如何在将列名作为变量传递时更新表中列的值。
其实应该是这样一个请求的同义词
BEGIN
UPDATE IndexData
SET Student = 'true'
WHERE Lastname = 'Smith'
END
或者也许是这样
取决于字段的类型
Student。