將截斷字串或二進位制資料 語句終止

2021-06-16 11:44:02 字數 1684 閱讀 7387

1、今天執行 alter table tblvainfo alter column id varchar not null;時候出現

訊息8152,級別16,狀態14,第1 行

將截斷字串或二進位制資料。

語句已終止。

查閱後知道,是原來我在修改字段長度的時候表中有資料,如果這些資料很重要,可以講這些資料匯入另外一張表,然後刪除這個表中的資料在執行,

2、還有如果表中有主鍵想修改欄位的長度會報錯:

訊息 5074,級別 16,狀態 1,第 1 行

物件'pk_tbl_va_info' 依賴於 列'id'。

訊息 4922,級別 16,狀態 9,第 1 行

由於乙個或多個物件訪問此列,alter table alter column id 失敗。

這個時候需要刪除主鍵在修改在新增主鍵即可

alter table tbl_vas_info add verification int;

alter table tbl_vas_info drop pk_tbl_vas_info;

alter table tbl_vas_info alter column id varchar(64)

alter table tbl_vas_info alter column id varchar(64) not null;

alter table tbl_vas_info add constraint pk_tbl_vas_info primary key (id)

alter table tbl_va_info drop pk_tbl_va_info;

alter table tbl_va_info alter column id varchar(66);

alter table tbl_va_info alter column vasid varchar(64);

delete from tbl_va_info

alter table tbl_va_info alter column id varchar(66) not null;

alter table tbl_va_info alter column vasid varchar(64) not null;

alter table tbl_va_info add constraint pk_tbl_va_info primary key (id);

delete from tbl_va_link;

delete from vt_vas;

附:檢視表資訊

sp_help 表名

檢視乙個表的主鍵:

select * from sysobjects where xtype='pk' and name='pk_tbl_vas_info'

select * from sysobjects

where parent_obj=object_id('tbl_vas_info') and xtype='pk';

刪除主鍵:

declare @pk varchar(100);

select @pk=name from sysobjects where parent_obj=object_id('tbl_vas_info')

and xtype='pk';

if @pk is not null

exec('alter table tbl_vas_info drop '+ @pk);

將截斷字串或二進位制資料。語句已終止

可能對於高手來說這是個不是問題的問題,今天我寫出解決這個問題的步驟,相信對於像我一樣的菜鳥來說可以從中得出分析問題的方法。今天公司需要把大量的資料從乙個表的某些字段匯入到另乙個表,這麼簡單的問題,我就用已經熟練的 insert into org base org name select org na...

將截斷字串或二進位制資料 語句已終止

將截斷字串或二進位制資料。語句已終止 我在設計資料庫的時候準備在乙個表中設計乙個ncontent欄位,它的資料型別為varchar 50 由於是在可視模式下新建的,沒有太注意,也許是滑鼠滑輪不小心滑動力,導致ncontent欄位的資料變成了 nvarchar 型別了,所以在後來的新增資料時就出現了 ...

MSSQL 將截斷字串或二進位制資料問題的解決方法

地tqsad圖資料存放在sqlserver 2008中,使用maptqsadxtreme7 開發時,使用feature.update 方法時出錯的提示包含 mssql tqsad將截斷字串或二進位制資料 主要原因就是給某個字段賦值時,內容大於欄位的長度或型別不符造成的 解決方法 乙個是修改資料庫字段...