sql设置
1. sql怎么设置外键
sql server中建立外键约束有3中方式:enterprise manager中,tables,design table,设置table的properties,可以建立constraint, reference key;enterprise manager中,diagrams, new diagrams,建立两个表的关系;直接用transact sql语句。
1、三个方法都需要先建立数据表。
1)创建表author :
create table [dbo].[author] (
[id] [bigint] not null ,
[authorname] [char] (10) null ,
[address] [char] (480) null ,
[introction] [ntext] null
)
2)创建表mybbs:
reate table [dbo].[mybbs] (
[id] [bigint] identity (1, 1) not null ,
[authorid] [bigint] not null ,
[title] [char] (40) null ,
[date_of_created] [datetime] null ,
[abstract] [char] (480) null ,
[content] [ntext] null
)
2、设置表mybbs中的authorid为外键,参照author表的id字段,直接使用transact sql语句,过程如下:
1)增加表mybbs(authorid)的外键约束fk_mybbs_author,表mybbs中的authorid受表author中的主键id约束:
begin transaction
alter table dbo.mybbs add constraint fk_mybbs_author
foreign key (authorid)
references dbo.author([id]) on update cascade on delete cascade
2)删除外键约束fk_mybbs_author:
--alter table dbo.mybbs drop constraint fk_mybbs_author
--rollback
commit transaction
上面on update cascade,on delete cascade两个选项,指明以后author表的id字段有delete,update操作时,mybbs表中的id也会被级联删除或更新。如果没有选中,是不可以对author表中已被mybbs表关联的id进行update或者delete操作的。
拓展资料:
SQL的主键和外键的作用:
1、插入非空值时,如果主键表中没有这个值,则不能插入。
2、更新时,不能改为主键表中没有的值。
3、删除主键表记录时,你可以在建外键时选定外键记录一起级联删除还是拒绝删除。
4、更新主键记录时,同样有级联更新和拒绝执行的选择。
简而言之,SQL的主键和外键就是起约束作用。
2. SQL Server常用到的几个设置选项是什么
1. SET DEADLOCK_PRIORITYx0dx0a2. SET LOCK_TIMEOUTx0dx0a3.@@LOCK_TIMEOUTx0dx0a4.SET IDENTITY_INSERTx0dx0a5.SET IMPLICIT_TRANSACTIONSx0dx0a6.SET NOCOUNTx0dx0a7.@@ROWCOUNTx0dx0a8.SET ROWCOUNTx0dx0a9.SET TRANSACTION ISOLATION LEVELx0dx0a10.SET XACT_ABORT x0dx0a1. SET DEADLOCK_PRIORITYx0dx0a说明:控制在发生死锁情况时会话的反应方式。如果两个进程都锁定数据,并且直到其它进程释放自己的锁时,每个进程才能释放自己的锁,即发生死锁情况。x0dx0a语法:SET DEADLOCK_PRIORITY { LOW | NORMAL | @deadlock_var }x0dx0a参数:LOW 指定当前会话为首选死锁牺牲品。Microsoft® SQL Server™ 自动回滚死锁牺牲品的事务,并给客户端应用程序返回 1205 号死锁错误信息。x0dx0aNORMAL 指定会话返回到默认的死锁处理方法。x0dx0a@deadlock_var 是指定死锁处理方法的字符变量。如果指定 LOW,则 @deadlock_var 为 3;如果指定 NORMAL,则 @deadlock_var 为 6。x0dx0a注释:SET DEADLOCK_PRIORITY 的设置是在执行或运行时设置,而不是在分析时设置。x0dx0a权限:SET DEADLOCK_PRIORITY 权限默认授予所有用户。x0dx0a2. SET LOCK_TIMEOUTx0dx0a说明:指定语句等待锁释放的毫秒数。x0dx0a语法:SET LOCK_TIMEOUT timeout_periodx0dx0a参数:timeout_period 是在 Microsoft® SQL Server™ 返回锁定错误前经过的毫秒数。值为 -1(默认值)时表示没有超时期限(即无限期等待)。x0dx0a当锁等待超过超时值时,将返回错误。值为 0 时表示根本不等待,并且一遇到锁就返回信息。x0dx0a注释:在连接开始时,该设置的值为 -1。设置更改后,新设置在其余的连接时间里一直有效。x0dx0aSET LOCK_TIMEOUT 的设置是在执行或运行时设置,而不是在分析时设置。x0dx0aREADPAST 锁定提示为该 SET 选项提供了另一种方式。x0dx0a权限:SET LOCK_TIMEOUT 权限默认授予所有用户。
3. 怎么设置SQL数据库用户权限
设置SQL数据库用户权限的方法如下: 点击进入数据库级别的“安全性”、“登录名”、“新建登录名”;在“常规”选项卡中,创建登陆名,并设置默认的数据库;在“用户映射”选项卡中,勾选需要设置的数据库,并设置“架构”,点击“确认”按钮,完成创建用户的操作;在“权限”选项卡中,依次点击“添加”、“浏览”、“选择对象”;点击“确认”按钮后即可。