我正在为现有数据库创建一个数据库项目,并希望将表创建脚本及其插入脚本保存在一起。我试过跟着
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:在此上下文中无法识别此语句。'
我记得我在之前的一个项目中看到了同样的内容,但却无法回忆起它是如何完成的。 任何帮助/建议表示赞赏。
答案 0 :(得分:3)
正常情况是有一个post deploy脚本并将插入放入其中,如果你让它可以重新运行以添加"如果不存在则行插入"或者我首选的合并语句,即使它是为每个部署运行它也无关紧要。
tgriffin是对的,您可以通过Build操作将DML放入脚本中,并且无法在没有构建的情况下将DDL语句放在文件中,并将其包含在项目中。
答案 1 :(得分:0)
我认为当你在一个具有Build“Build”的脚本中拥有DML时会发生这种情况。右键单击脚本>将Build Action更改为None属性>构建动作,应解决错误。