7
SQL Server在存储过程中默默地截断varchar
根据这个论坛的讨论,SQL Server(我使用的是2005,但我收集到的信息也适用于2000和2008)varchar,即使您直接使用INSERT实际上会导致错误。例如。如果我创建此表: CREATE TABLE testTable( [testStringField] [nvarchar](5) NOT NULL ) 然后当我执行以下命令时: INSERT INTO testTable(testStringField) VALUES(N'string which is too long') 我收到一个错误: String or binary data would be truncated. The statement has been terminated. 大。数据完整性得以保留,并且调用者知道这一点。现在让我们定义一个存储过程来插入它: CREATE PROCEDURE spTestTableInsert @testStringField [nvarchar](5) AS INSERT INTO testTable(testStringField) VALUES(@testStringField) GO 并执行它: EXEC spTestTableInsert @testStringField = N'string …