根据列数据类型,动态更新。(sp_executesql )

DECLARE @SQL1 NVARCHAR(1000)
,@SQL2 VARCHAR(1000)
,@type varchar(20)

SET @SQL1 ='
SELECT @type=B.NAME
FROM SYSCOLUMNS A
INNER JOIN SYSTYPES B
ON A.XTYPE=B.XTYPE
WHERE A.ID=OBJECT_ID(''規格書明細'')
AND A.NAME='''+@nameCol+''''
EXECUTE sp_executesql @SQL1,N'@type varchar(20) output',@type output

IF lOWER(@type) = 'char' OR lOWER(@type) = 'varchar'
BEGIN
SET @SQL2='
UPDATE 規格書明細
SET '+@nameCol+'='''+@ret+'''
WHERE 細分類コード='''+@SaibunruiCode+''''
END
ELSE
BEGIN
SET @SQL2='
UPDATE 規格書明細
SET '+@nameCol+'='+@ret+'
WHERE 細分類コード='''+@SaibunruiCode+''''
END
EXEC(@SQL2)
END

posted @ 2021-07-06 16:20  _jwj  阅读(113)  评论(0编辑  收藏  举报