我试图用下面的代码来生成超过90桌更新语句:SQL SERVER 2000截断生成的SQL字符串中使用动态SQL
Declare @cmd VARCHAR(8000)
Select @cmd = COALESCE(@cmd,'') +
'
UPDATE ' + TABLE_NAME + ' SET ' + Column_Name + ' = ''000000000''' + '''
WHERE ' + Column_Name + ' = ''000000001''' + '''
'
From INFORMATION_SCHEMA.COLUMNS
Where TABLE_NAME not in (SELECT TABLE_NAME
From INFORMATION_SCHEMA.VIEWS)
and
(Column_Name like 'SSN%'
OR Column_Name LIKE 'ssn%'
OR Column_Name LIKE 'ssn%'
OR Column_Name LIKE '%_ssn%'
OR Column_Name LIKE '_ocsecno'
OR Column_Name LIKE 'Ssn%');
Select @cmd
代码的作品,但SQL Server 2000是能够产生更新语句91个表格中只有45个表格。它会截断第45个表中的SQL字符串。有没有人知道如何解决这个问题?
查询字符串得到多大?如果它超过8000个字符,那么是的,你会得到一个截断的查询。 –
其超过8000个字符 – zilla
所以......“我有10加仑的水和1加仑的杯子,为什么当我倒入所有的水时杯子溢出? –