Sql ssdt:使用表创建脚本保留数据

Sql ssdt:使用表创建脚本保留数据,sql,sql-server-data-tools,database-project,Sql,Sql Server Data Tools,Database Project,我正在为现有数据库创建一个数据库项目,希望将表创建脚本及其插入脚本保持在一起。我试着跟着 CREATE TABLE [dbo].[t1] ( [ID] INT IDENTITY (1, 1) NOT NULL, [Desc] NVARCHAR (100) NOT NULL ) GO SET IDENTITY_INSERT [dbo].[t1] ON GO INSERT INTO [dbo].[t1] ([ID], [Desc]) VALUES (1,

我正在为现有数据库创建一个数据库项目,希望将表创建脚本及其插入脚本保持在一起。我试着跟着

CREATE TABLE [dbo].[t1] (
   [ID]   INT            IDENTITY (1, 1) NOT NULL,
   [Desc] NVARCHAR (100) NOT NULL
)

GO
SET IDENTITY_INSERT [dbo].[t1] ON 
GO
INSERT INTO [dbo].[t1] ([ID], [Desc]) VALUES 
(1, N'dining'),
(2, N'lounge'),
(3, N'hall'),
GO
SET IDENTITY_INSERT [dbo].[t1] OFF
GO
它在Insert语句中给出了错误 “SQL70001:此上下文中无法识别此语句。”

我记得我在以前的一个项目中也看到过同样的情况,但记不起是如何完成的。
非常感谢您提供的任何帮助/建议。

我认为,如果您的脚本中包含DML,并且该脚本的构建操作为“Build”。通过右键单击脚本>属性>生成操作将生成操作更改为无,应该可以解决此错误。

我认为,如果脚本中的DML具有“生成”的生成操作,则会发生这种情况。通过右键单击脚本>属性>生成操作将生成操作更改为无,应该可以解决此错误。

我认为,如果脚本中的DML具有“生成”的生成操作,则会发生这种情况。通过右键单击脚本>属性>生成操作将生成操作更改为无,应该可以解决此错误。

我认为,如果脚本中的DML具有“生成”的生成操作,则会发生这种情况。通过右键单击脚本>属性>生成操作将生成操作更改为无,应该可以解决此错误。

正常的做法是使用部署后脚本,并将插入内容放入其中,如果您使其可重新运行,请添加“if not exists row..insert”或者我的首选合并语句,即使它对每个部署都运行,也无所谓


tgriffin是对的,您不能将DML与构建操作一起放入脚本中,也不能在没有构建的情况下将DDL语句放入文件中,也不能将其包含在项目中。

正常的做法是有一个部署后脚本,并将insert放入其中,如果您使其可以运行,则添加“if not exists row..insert”或者我的首选合并语句,即使它对每个部署都运行,也无所谓


tgriffin是对的,您不能将DML与构建操作一起放入脚本中,也不能在没有构建的情况下将DDL语句放入文件中,也不能将其包含在项目中。

正常的做法是有一个部署后脚本,并将insert放入其中,如果您使其可以运行,则添加“if not exists row..insert”或者我的首选合并语句,即使它对每个部署都运行,也无所谓


tgriffin是对的,您不能将DML与构建操作一起放入脚本中,也不能在没有构建的情况下将DDL语句放入文件中,也不能将其包含在项目中。

正常的做法是有一个部署后脚本,并将insert放入其中,如果您使其可以运行,则添加“if not exists row..insert”或者我的首选合并语句,即使它对每个部署都运行,也无所谓


tgriffin是对的,您不能将DML与生成操作一起放入脚本中,也不能在没有生成的情况下将DDL语句放入文件中并将其包含在项目中。

感谢快速响应tgriffin,但更改该属性将使引用对象出错。感谢快速响应tgriffin,但更改该属性将使引用对象出错。感谢快速响应tgriffin,但更改该属性将使引用对象出错。感谢快速响应tgriffin,但更改该属性将使引用对象出错。正如@Ed所建议的,使用MERGE语句(幂等运算)在部署后脚本中,这是最佳实践。他没有提到它帮助您编写合并语句的奇妙工具:)您可以在这里找到它:正如@Ed所建议的,在部署后脚本中使用合并语句(幂等操作)是最佳实践。他没有提到它帮助您编写合并语句的奇妙工具:)您可以在这里找到它:正如@Ed所建议的,在部署后脚本中使用合并语句(幂等操作)是最佳实践。他没有提到它帮助您编写合并语句的奇妙工具:)您可以在这里找到它:正如@Ed所建议的,在部署后脚本中使用合并语句(幂等操作)是最佳实践。他没有提到它的神奇工具来帮助你写合并声明:)你可以在这里找到:谢谢Ed的建议。实际上我想把表定义文件放进去,但似乎不可能。谢谢Ed的建议。实际上我想把表定义文件放进去,但似乎不可能。谢谢Ed的建议。实际上我想把表定义文件放进去,但似乎不可能。谢谢Ed的建议。我实际上想把表定义文件放进去,但似乎不可能。