varbinary(max)数据类型无效

use*_*935 5 sql-server sql-server-2005

CREATE TABLE Uploads
(
    id          uniqueidentifier NOT NULL PRIMARY KEY,
    DI_Id       INT              NOT NULL,
    FileData    VARBINARY(Max)   NULL,
    sFileName   nvarchar(50)     NOT NULL,
    ContentType nvarchar(50)     NOT NULL
)
Run Code Online (Sandbox Code Playgroud)

我试着像上面那样创建一个表.

它会产生错误的错误varbinary(max).

如果我给出固定列大小varbinary(100),则不会发生错误.

如何varbinary(max)在SQL Server 2005中声明?

mar*_*c_s 6

SQL Server 2005 确实支持VARBINARY(MAX).

您是对SQL Server 2000计算机执行此CREATE TABLE语句,还是您的数据库仍处于兼容级别= 80(SQL Server 2000).

使用此查询检查兼容性级别:

SELECT name, compatibility_level
FROM master.sys.databases
WHERE name = 'yourdatabase'
Run Code Online (Sandbox Code Playgroud)

如果运行此查询时出错 - 您正在运行SQL Server 2000 :-)

如果您的数据库是80级,则需要将其升级到至少90级(SQL Server 2005):

ALTER DATABASE YourDatabase SET COMPATIBILITY_LEVEL = 90
Run Code Online (Sandbox Code Playgroud)