首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

小弟我把用户信息放在两张表中,怎么同时插入信息

2012-12-14 
我把用户信息放在两张表中,如何同时插入信息?--表的结构大概是这样的 [Tab_Details]的[UserID]是外键CREAT

我把用户信息放在两张表中,如何同时插入信息?


--表的结构大概是这样的 [Tab_Details]的[UserID]是外键
CREATE TABLE [dbo].[Tab_User](
[UserID] [int] IDENTITY(1,1)PRIMARY KEY,
[UserName] [nvarchar](50) NOT NULL,
[UserPassword] [nvarchar](50) NOT NULL,
[UserAge] [int] NOT NULL,
[UserBirthday] [datetime] NOT NULL,
[UserGongzi] [money] NULL,
[UserSex] [bit] NOT NULL,
[UserCityID] [int] NOT NULL,
)

CREATE TABLE [Tab_Details](
[DetailsID] [int]IDENTITY(1,1) PRIMARY KEY,
[UserID] [int]FOREIGN KEY REFERENCES Tab_User(UserID) ,--
[UserIP] [varchar](50),
[UserLastLoginTime] [datetime] NOT NULL ,
[UserPhone] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
[UserEMail] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
[UserTouxiang] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
)
--我想这么写却报错!
INSERT INTO Tab_Details
(UserID,UserIP,UserLastLoginTime,UserPhone,UserEMail,UserTouxiang)
VALUES(
INSERT INTO Tab_User
      (UserName,UserPassword,UserAge,UserBirthday,UserGongzi,UserSex,UserCityID)OUTPUT INSERTED.UserID
VALUES('郭德纲','1234',38,1974-11-13,100000,1,1),
'119.119.119.119',2012-11-11,'13888888888','360@qq.com''http://xx.com/1.jpg'
);

[最优解释]
方法1:

--表的结构大概是这样的 [Tab_Details]的[UserID]是外键
 CREATE TABLE [dbo].[Tab_User](
     [UserID] [int] IDENTITY(1,1)PRIMARY KEY,
     [UserName] [nvarchar](50) NOT NULL,
     [UserPassword] [nvarchar](50) NOT NULL,
     [UserAge] [int] NOT NULL,
     [UserBirthday] [datetime] NOT NULL,
     [UserGongzi] [money] NULL,
     [UserSex] [bit] NOT NULL,
     [UserCityID] [int] NOT NULL,
 )
  
 CREATE TABLE [Tab_Details](
     [DetailsID] [int]IDENTITY(1,1) PRIMARY KEY,
     [UserID] [int]FOREIGN KEY REFERENCES Tab_User(UserID) ,--
     [UserIP] [varchar](50),
     [UserLastLoginTime] [datetime] NOT NULL ,
     [UserPhone] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
     [UserEMail] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
     [UserTouxiang] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
 )
 
 DECLARE @id INT 
 INSERT  INTO Tab_User
         ( UserName ,
           UserPassword ,
           UserAge ,
           UserBirthday ,
           UserGongzi ,
           UserSex ,
           UserCityID
         )


 VALUES  ( '郭德纲' ,
           '1234' ,
           38 ,
           1974 - 11 - 13 ,
           100000 ,
           1 ,
           1
         )
 SELECT  @id = @@IDENTITY
 INSERT  INTO Tab_Details
         ( UserID ,
           UserIP ,
           UserLastLoginTime ,
           UserPhone ,
           UserEMail ,
           UserTouxiang
         )
 VALUES  ( @id ,
           '119.119.119.119' ,
           2012 - 11 - 11 ,
           '13888888888' ,
           '360@qq.com' ,
           'http://xx.com/1.jpg'
         ) ;
 

 
[其他解释]
Tab_User 表上做触发器 
[其他解释]
方法2:触发器。


另外你那个想法还真特别呢,把inserted只存在i触发器内部。
[其他解释]
 不是我想法特别,是对sql不熟悉,没专门研究过,只是在程序里简单的应用过!呵呵

热点排行