Wah*_*zah 19 sql-server sql-server-2008
我有这张桌子:
   (<NUM_TRF int
   ,<NAME, varchar(255),>
   ,<DESCRIPTION, text,>
   ,<REPORT, varbinary(max),>)
我尝试在SQL Server 2008中创建一个脚本,以便在我的本地数据库中插入一行,
INSERT INTO [MY_DB_APP].[dbo].[CONNECT_USER]
VALUES(1, 'name', 'description', Cast('wahid' As varbinary(max)) )
GO
但我得到这个错误:
字符串或二进制数据将被截断.
该语句已终止.
mar*_*c_s 25
两个问题:
问题#1:不再使用TEXT- 它已被弃用.使用VARCHAR(n)合适尺寸的n,或者如果你真的必须(只有你真的必须),使用VARCHAR(MAX)
CREATE TABLE dbo.CONNECT_USER
(
    NUM_TRF int,
    NAME varchar(255),
    DESCRIPTION varchar(1000),
    REPORT varbinary(max)
)
我个人也会避免在所有大写中写一切 - 这只是让它更难阅读!而且我会尽量避免非常普通的像列名Name或Description-这些都不是很直观的,并可能与其他表中的列和/或使用SQL Server保留关键字冲突.尝试使用更具表现力,更多与上下文相关的列名,这些列名在您的环境中有意义(ConnectUsername或其他)
问题#2:在做的时候INSERT,我建议总是定义要插入的列.这可以避免在重组表或添加新列时出现令人不快的意外情况:
INSERT INTO [MY_DB_APP].[dbo].[CONNECT_USER](NUM_TRF, NAME, DESCRIPTION, REPORT)
VALUES(1, 'name', 'description', CAST('wahid' AS VARBINARY(MAX)))
GO
| 归档时间: | 
 | 
| 查看次数: | 64041 次 | 
| 最近记录: |