今天想写一个简单的通用的更新存储过程
ALTER PROCEDURE [dbo].[pro_lw_UpdateDynamic]
@FiledName nvarchar(250),
@FiledValue nvarchar(4000),
@TableName nvarchar(250),
@WhereCondition nvarchar(500)
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
DECLARE @SQL nvarchar(3250)
SET @SQL = '
UPDATE [dbo].['
+@TableName+
'] SET ['
+@FiledName+
'] = '
+@FiledValue+
'WHERE '
+ @WhereCondition
EXEC
sp_executesql @SQL
RETURN
能通过,但是在测试时,却提示列名无效,后来在http://www.cnblogs.com/xkforever/archive/2007/04/24/725563.html?logined=1
找到答案,原来是FiledValue应该放在单引号'内,
所以正确的写法是,是将上面红色部分改为:'''+@FiledValue+'''