发布时某些表中的数据初始化

时间:2015-02-13 21:11:51

标签: sql sql-server tsql

我通过选择SQL Server数据库模板在Visual Studio中开发我的数据库。我可能会不时创建数据库并将其发布,因为我可能需要在开发时进行更改和编辑。问题是有Roles表这样的表可能需要一些默认数据,现在我可以通过编写和保存查询文件或使用SQL Management Studio来手动添加。但是当我不得不将这个数据库分发给客户时,问题就出现了,而客户可能对SQL事物没有任何了解。我一直在想是否有一种方法可以在表定义时编写一些内容来自动添加和初始化一些默认值(如果表中尚未提供)到发布数据库时,这将非常有用。

例如,给出以下脚本:

CREATE TABLE [dbo].[Roles]
(
    [Id] INT NOT NULL PRIMARY KEY,
    [Title] NVARCHAR(15) NOT NULL
)

有没有办法在上面的代码中添加一些内容,以便在发布数据库时自动初始化以下内容,如果这些记录尚不可用:

Id        Title
1         Admin
2         Management
3         Staff
4         Customer
...

1 个答案:

答案 0 :(得分:0)

我不太了解你,但if you want to create table if not exists and insert data if the data not exists,你可以试试这个:

if not exists (select * from DatabaseName.sys.tables where name = 'Roles')
begin
CREATE TABLE [dbo].[Roles]
(
    [Id] INT NOT NULL PRIMARY KEY,
    [Title] NVARCHAR(15) NOT NULL
)
end
go
if not exists(select * from Roles where id='1')
Begin
insert into Roles (id,title) values (1,'Admin')
end
go
if not exists(select * from Roles where id='2')
Begin
insert into Roles (id,title) values (2,'Management')
end
go
.
.
.