我正在使用 Entity Framework Code First,我想生成 C# 代码,用于从数据库中已存在的数据中播种数据。现在,填充 DropCreateDatabaseIfModelChanges.Seed() 似乎是一个完全手动的过程,开发人员在其中创建对象并填充值。如果开发人员是唯一负责播种数据的人,那么这在某种程度上是可以管理的,但我想情况通常并非如此。
在我的特定情况下,有一些非开发人员通过使用一些 MVCScaffolding 生成的输入表单来帮助填充数据库。他们添加的数据确实属于“种子数据”类别,因此我想将他们新添加的行包含到我的 Seed() 实现中。人们可以简单地将其解释为“生成 C# 代码插入脚本”函数。
谢谢!
我一直在SQL Server 2005数据库中使用Narayana Vyas Kondreddi的优秀存储过程sp_generate_inserts http://vyaskn.tripod.com/code/generate_inserts.txt.
但是在转移到SQL Server 2008后,我得到了奇怪的结果,其中在UNIQUEIDENTIFIER值之后插入了一个长空格:
INSERT INTO [BannerGroups]([Id], [DescriptionText], [Width], [Height])
VALUES('BFCD0173-9432-47D1-84DF-8AB3FB40BF76 ', 'Example', 145, NULL)
Run Code Online (Sandbox Code Playgroud)
有人知道怎么修这个东西吗?
sql-server stored-procedures sql-server-2005 sql-server-2008
我想知道是否有一种工具可以UPDATE根据已插入表中的数据生成语句。我知道有MERGE声明,但我想知道我是否可以通过其他方式做到这一点。我正在使用 SQL Server 2014
假设我有一个 TableA:
Id int,
Name nvarchar(50),
Description nvarchar(100),
Active bit
Run Code Online (Sandbox Code Playgroud)
然后我的 TableA 有这个记录和更多:
Id Name Description Active
1 blablabla sdjfhksj 1
Run Code Online (Sandbox Code Playgroud)
我想为此表上的每一行创建更新语句
Update TableA
set Name = 'blablabla',
Description = 'sdjfhksj',
Active = 1
where Id = 1
Run Code Online (Sandbox Code Playgroud) 生成数据库脚本时,我正在编写要迁移到不同环境的数据的脚本。脚本生成中是否有一个设置,我可以启用它来自动设置 IDENTITY_INSERT 开/关,这样我就不必在生成的脚本中手动检查每个表并进行设置?我正在使用 SSMS,我想通过 SSMS 来做到这一点。
这是我得到的:
INSERT my_table (my_table_id, my_table_name) VALUES (1, 'val1');
INSERT my_table (my_table_id, my_table_name) VALUES (2, 'val2');
Run Code Online (Sandbox Code Playgroud)
这是我想要的:
SET IDENTITY_INSERT my_table ON
INSERT my_table (my_table_id, my_table_name) VALUES (1, 'val1');
INSERT my_table (my_table_id, my_table_name) VALUES (2, 'val2');
SET IDENTITY_INSERT my_table OFF
Run Code Online (Sandbox Code Playgroud)