首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >创建跨环境中具有预先填充数据的数据库脚本

创建跨环境中具有预先填充数据的数据库脚本
EN

Stack Overflow用户
提问于 2022-04-10 21:13:56
回答 1查看 40关注 0票数 -1

我有一个名为“UserTypes”的表,其中主id是[uniqueidentifier]。我在另一个表中有一个引用,叫做“用户”。Users表以UserTypeId作为foreignKey。

代码语言:javascript
运行
复制
CREATE TABLE [UserTypes] (
    [Id] [uniqueidentifier] DEFAULT NEWID() PRIMARY KEY,
    [UserName] [varchar](100) NOT NULL,
    [UserCD] [varchar](40) NOT NULL
GO

INSERT INTO [dbo].[UserTypes]
           ([UserName], [UserCD])
     VALUES
           ('Administrator','ADMI'), 
           ('NonPrimary','NONP'),
GO

-- ID got generated in [UserTypes] is '80D1EEE7-0BCC-48A7-A741-29A1D8B6E580' for 'ADMI'

CREATE TABLE [Users] (
    [Id] [uniqueidentifier] DEFAULT NEWID() PRIMARY KEY,
    [UserTypeId] [uniqueidentifier] NOT NULL,
    [UserName] [varchar](100) NOT NULL, 
    CONSTRAINT Users_UserTypeId_UserType_Id FOREIGN KEY (UserTypeId)
    REFERENCES UserTypes(Id))
GO

INSERT INTO [dbo].[Users]
           ([UserTypeId], [UserName])
     VALUES
           ('80D1EEE7-0BCC-48A7-A741-29A1D8B6E580','Kushal Seth')
GO

这个'80D1EEE7-0BCC-48A7-A741-29A1D8B6E580'是来自userType表的'ADMI‘的userTypeId。

我的问题是,假设我需要在一个新的DB中运行这个脚本,那么'ADMI‘的ID将在'UserTypes’表中不同。在插入“用户”表时,脚本会抛出错误。

我拥有的一个选项是声明变量并从UserType表中选择ID并将其赋值给这个变量,然后在用户表的insert查询中使用该变量。

这是唯一的办法吗?或者有没有更好的方法来设计这样的桌子。任何设计建议都会很感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-10 21:26:09

假设我需要在一个新的DB中运行这个脚本,那么'ADMI‘的ID将在'UserTypes’表中不同。

因此,从UserTypes中移除Guid,并将'UserCD‘作为主键。

代码语言:javascript
运行
复制
CREATE TABLE [UserTypes] 
(
    [UserCD] [varchar](40) NOT NULL PRIMARY KEY,
    [UserName] [varchar](100) NOT NULL
)

GO

INSERT INTO [dbo].[UserTypes]
           ([UserName], [UserCD])
     VALUES
           ('Administrator','ADMI'), 
           ('NonPrimary','NONP')

在任何可以想象的方面都会更好。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71820619

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档