2013-02-06 40 views
0
INSERT INTO [CVSUAT].[dbo].[UserLevel ]( 
    [Client_ID] 
    ,[User_Level_Name] 
    ,[User_Level_Description] 
    ,[Created_by] 
    ,[Created_Date] 
    ,[Modified_by] 
    ,[Modified_Date] 
    ,[Delete_Flag] 
    ,[Deactivate_Flag]) VALUES ('sndbsndbsdnbsndbsnbdnsbdn23','Client','','Client','2013-03-12 21:31:38.437','Client','2013-03-12 21:31:38.437','0','0') 

消息8152,級別16,狀態4,行1 字符串或二進制數據將被截斷。 該聲明已被終止。無法將數據插入到數據庫中的字符串或二進制數據將被截斷

enter image description here

注:我的表中有空格[的UserLevel],因爲它是由這種方式從之前

+4

擺脫那個fr tra的尾隨空間!這是荒謬的。談論技術債務! –

+1

「User_Level_ID」是標識列嗎?還有一個方面,'Delete-Flag'和'Deactivate_Flag'聽起來應該是'BIT'列。 – Arran

+0

由於所有的列都是可空的(PK除外),爲什麼你輸入空字符串進入一些未知值呢?你可能根本沒有插入它們,並將它們留爲空。 – Bridge

回答

1

這是由於試圖把太多的數據轉換成一列造成的。

問題是,在您的示例中指定的值中沒有任何值對於您的模式圖中指示的列太大。因此,我假設你給我們的值不是真值,或者你在該表上有觸發器,這實際上是導致錯誤的原因。

另外,您的Delete_FlagDeactivate_Flag列不應該是數據類型位,而應該是char(1)

編輯:

哦,還有一兩件事 - 爲Client_ID是一個nvarchar,你可能要存儲在那裏Unicode數據。爲了在你的腳本中表明這一點,你應該在你的字符串上使用「N」前綴,如下所示:

INSERT INTO [CVSUAT].[dbo].[UserLevel ]( 
    [Client_ID] 
    ,[User_Level_Name] 
    ,[User_Level_Description] 
    ,[Created_by] 
    ,[Created_Date] 
    ,[Modified_by] 
    ,[Modified_Date] 
    ,[Delete_Flag] 
    ,[Deactivate_Flag]) VALUES (N'sndbsndbsdnbsndbsnbdnsbdn23','Client','','Client','2013-03-12 21:31:38.437','Client','2013-03-12 21:31:38.437','0','0') 
相關問題