非常独特..... 并且无权更改排序规则
我创建了一个表
CREATE TABLE BT_INPUT_CHK
(
[ID] [int] NOT NULL,
[RELID] [int] NULL,
[OPNO] [varchar](35) NULL
)
当我插入数据时
INSERT ZBT_INPUT_CHK ([ID],[RELID],[OPNO])
VALUES('1000002','','')
问题从这里开始。 对于varchar空字符串插入相同,但对于int空字符串正在更改为0.
整理:Latin1_General_CI_AS
任何人都可以帮助我。 感谢
答案 0 :(得分:0)
当空sting隐式转换为INT时,它会转换为ZERO。如果需要将其设置为NULL,则使用NULLIF函数。
DECLARE @RELID VARCHAR(10) = ''
INSERT ZBT_INPUT_CHK ([ID],[RELID],[OPNO])
VALUES('1000002',NULLIF(@RELID,''),'')
答案 1 :(得分:0)
Check This ..您将清楚地了解如何将空字符串插入数字列
INSERT into BT_INPUT_CHK ([ID],[RELID],[OPNO]) VALUES('1000007',NULL,'');
答案 2 :(得分:0)
试试这个,
CREATE TABLE #BT_INPUT_CHK
(
[ID] [int] NOT NULL,
[RELID] [int] NULL,
[OPNO] [varchar](35) NULL
)
INSERT #BT_INPUT_CHK ([ID],[RELID],[OPNO])
VALUES('1000002',(case when cast('' as varchar(10))='' then 'Error' else '' end),'')