sql經常會遇到“將截斷二進制或字符串”的錯誤——處理辦法
1、修改列長度——無法定位具體字段
2、程序邏輯中增加判斷,以定位具體字段
由於我是在報表數據庫中直接寫SQL,沒有校驗邏輯,所以想把全部字段的長度都增加到最大。寫了批量腳本:
declare c cursor for select name, max_length from sys.all_columns where object_id= object_id('tablename') and system_type_id=231 open c declare @cName varchar(100),@maxLength int fetch next from c into @cName, @maxLength while @@FETCH_STATUS=0 begin declare @sql nvarchar(max) set @sql = 'alter table tablename alter column ' + @cName + ' nvarchar(max)' exec(@sql) fetch next from c into @cName, @maxLength end close c deallocate c
