相关疑难解决方法(0)

如何在SQL Server中同时将数据插入两个表?

假设我的表结构看起来像这样:

CREATE TABLE [dbo].[table1] (
    [id] [int] IDENTITY(1,1) NOT NULL,
    [data] [varchar](255) NOT NULL,
    CONSTRAINT [PK_table1] PRIMARY KEY CLUSTERED ([id] ASC)
)

CREATE TABLE [dbo].[table2] (
    [id] [int] IDENTITY(1,1) NOT NULL,
    [table1_id] [int] NOT NULL,
    [data] [varchar](255) NOT NULL,
    CONSTRAINT [PK_table2] PRIMARY KEY CLUSTERED ([id] ASC)
)
Run Code Online (Sandbox Code Playgroud)

[id]一个表的[table1_id]字段对应于第二个字段的字段.我想要做的是在单个事务中将数据插入到两个表中.现在我已经知道如何通过执行INSERT-SELECT-INSERT来做到这一点,如下所示:

BEGIN TRANSACTION;
DECLARE @id [int];
INSERT INTO [table1] ([data]) VALUES ('row 1');
SELECT @id = SCOPE_IDENTITY();
INSERT INTO [table2] ([table1_id], [data]) VALUES (@id, 'more of row 1');
COMMIT …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server foreign-keys insert

51
推荐指数
1
解决办法
13万
查看次数

SQL Server存储过程插入多个表中

我有2个表,custlogin并且custinfo:

custlogin:

custid int primary key auto notnull
custusename varchar(25)
custpassword varchar(50)
Run Code Online (Sandbox Code Playgroud)

custinfo:

custid foriegnkey custlogin.custid ondelete set NULL
custfirstname varchar(25)
custlastname  varchar(25)
custaddress   varchar(100)
Run Code Online (Sandbox Code Playgroud)

我想编写一个存储过程,它将插入到两个表中

更确切地说,插入custlogincustusername custpassword,这将返回custid用作外键custinfo.

我搜索了很多,但我找不到任何解决方案.

sql sql-server stored-procedures insert

4
推荐指数
1
解决办法
4万
查看次数