url_relations(混合表)
relationId(混合id) urlId(路径id) userId(用户id) 这里对urlID和userID建立外键关系user 表建立对companies(公司表)的外键关系插入的时候应该先插入companies(公司表)表
然后在在这个基础上插入
urls(路径表)
urlId(路径id) url(路径地址)
和
users(用户表)
userId(用户id) name(用户名) compId(公司id)
最后,再根据各表生成的键值插入
url_relations(混合表)
relationId(混合id) urlId(路径id) userId(用户id) 这里对urlID和userID建立外键关系user 表建立对companies(公司表)的外键关系插入的时候应该先插入companies(公司表)表
然后在在这个基础上插入
urls(路径表)
urlId(路径id) url(路径地址)
和
users(用户表)
userId(用户id) name(用户名) compId(公司id)
最后,再根据各表生成的键值插入
url_relations(混合表)
解决方案 »
- update 语句,请大师们帮忙。
- 如何用触发器实现,记录被修改时,在某一特定字段中记录被修改的时间
- 求一SQL语句?
- 急,简单查询语句!
- 怎么在视图结果中新加一个列ID(自增长)
- 函数调用函数时,调用函数如何将参数传给被调用函数
- 怎样提高like查询的效率?
- 建表时在表名前加不加“[dbo].”有什么不同?
- 请问,有没有可能通过代码把SQL SERVER上的所有视图的连结关系列出,我想列出清单表明每一个VIEW都是由哪几个表构成,库中有几百个视图,
- SQL Server 2008 安装出错 Error result: -2068643839
- 再请教一遍数据库同步,邹老大帮我看看:100台以上的服务器将数据发布到一台中心服务器现实么?
- 内部查询处理器错误:在查询优化过程中,查询处理器用尽了堆栈空间
relationId(混合id) urlId(路径id) userId(用户id) 这里对urlID和userID建立外键关系user 表建立对companies(公司表)的外键关系插入的时候应该先插入companies(公司表)表
然后在在这个基础上插入
urls(路径表)
urlId(路径id) url(路径地址)
和
users(用户表)
userId(用户id) name(用户名) compId(公司id)
最后,再根据各表生成的键值插入
url_relations(混合表)
create proc p_insert
@username varchar(100),
@company varchar(100),
@company_address varchar(100),
@url varchar(100)
as
declare @compid int, @userid int, @urlid int
insert companies(company, company_address)
values(@company, @company_address)
set @compid=@@identityinsert urls(url) values(@url)
set @urlid = @@identityinsert users(name, compid) values(@username, @compid)
set @userid = @@identityinsert url_relations(urlId, userId)
values(@urlid, @userid)
go
(compId int identity(1,1),company varchar(20),company_address varchar(20)
,constraint pk_cp_compID primary key clustered(compId))
create table users
(userId int identity(1,1),name varchar(20),compId int,
constraint pk_ur_userID primary key clustered(userID),
constraint fk_ur_compID foreign key(compID) references companies(compID)) create table urls
(urlId int identity(1,1),url varchar(20),
constraint pk_urls_urlId primary key clustered(urlID))
create table url_relations
(relationId int identity(1,1),urlId int,userId int,
constraint pk_ut_relationId primary key clustered(relationId),
constraint fk_ut_urlId foreign key(urlId) references urls(urlId),
constraint fk_ut_userId foreign key(userId) references users(userId))
gocreate proc p_inserted
@col1 varchar(20),
@col2 varchar(20),
@col3 varchar(20),
@col4 varchar(20)
as
begin
declare @i int,@j int,@k intinsert companies
select @col2,@col3select @i=@@identityinsert users
select @col1,@iselect @j=@@identityinsert urls
select @col4select @k=@@identityinsert url_relations
select @k,@j
end
go
exec dbo.p_inserted '张学友','四川长红','四川省成都市','http://www.sestl.com'exec dbo.p_inserted '刘德华','中国人','中国香港','http://www.andyliu.com'select * from companies
select * from users
select * from urls
select * from url_relationsdrop proc dbo.p_inserted
drop table url_relations,urls,users,companiescompId company company_address
----------- -------------------- --------------------
1 四川长红 四川省成都市
2 中国人 中国香港(所影响的行数为 2 行)userId name compId
----------- -------------------- -----------
1 张学友 1
2 刘德华 2(所影响的行数为 2 行)urlId url
----------- --------------------
1 http://www.sestl.com
2 http://www.andyliu.c(所影响的行数为 2 行)relationId urlId userId
----------- ----------- -----------
1 1 1
2 2 2(所影响的行数为 2 行)
表的设计上应该是存在问题的,不应该用自动编号生成,应该是手动生成才对!比如users表的主键应该是ur_0001,ur_0002这样输入才容易识别