在SQL Server上使用Liquibase时出错
我正在试验Liquibase,试图让它将一个数据库复制到另一个数据库。不幸的是,我一直遇到这样的错误: 不允许将数据类型varchar隐式转换为varbinary。 使用CONVERT函数运行此命令 询问 它生成的SQL如下所示:在SQL Server上使用Liquibase时出错,sql,sql-server,liquibase,Sql,Sql Server,Liquibase,我正在试验Liquibase,试图让它将一个数据库复制到另一个数据库。不幸的是,我一直遇到这样的错误: 不允许将数据类型varchar隐式转换为varbinary。 使用CONVERT函数运行此命令 询问 它生成的SQL如下所示: CREATE TABLE [dbo].[Attachment] ( [Applicantid] uniqueidentifier NOT NULL, [Attachmentid] uniqueidentifier CONSTRAINT DF_Atta
CREATE TABLE [dbo].[Attachment] (
[Applicantid] uniqueidentifier NOT NULL,
[Attachmentid] uniqueidentifier CONSTRAINT DF_Attachment_Attachmentid DEFAULT '(newid())' NOT NULL,
[AttachmentType] INT CONSTRAINT DF_Attachment_AttachmentType DEFAULT 0 NOT NULL,
[FileAttachment] image NOT NULL,
[FileName] ntext NOT NULL,
[FileType] nvarchar(125) NOT NULL,
[Filesize] INT NOT NULL,
[CCN] varbinary(8) CONSTRAINT DF_Attachment_CCN DEFAULT '0' NOT NULL,
[CreateDate] DATETIME CONSTRAINT DF_Attachment_CreateDate DEFAULT (getdate()) NOT NULL,
[LastUpdate] DATETIME CONSTRAINT DF_Attachment_LastUpdate DEFAULT (getdate()) NOT NULL,
CONSTRAINT [PK_Attachment] PRIMARY KEY (Attachmentid)
):
这些liquibase项目人员需要了解有关SQL Server-2005及更高版本的一些信息:
长期以来一直被弃用-请改用NTEXT
NVARCHAR(MAX)
也早就被弃用了-改用IMAGE
VARBINARY(MAX)
可能有一个
varchar
列,您试图隐式地转换为varbinary
。不知道liquibase,但是对于数据库之间的任何数据类型转换问题,我的一般解决方案是将数据加载到一个没有约束且尽可能使用通用数据类型的临时表中。然后使用显式转换将数据移动到目标表。这里唯一一个varbinary的列是CCN列,所以我从这里开始…有没有可能您试图在这个列中放入一些不是varbinary的内容(8)?感谢数据类型指针,下一个版本的liquibase将使用更新的类型