CREATE TABLE products (id int IDENTITY PRIMARY KEY, product varchar(40))
取得identity值:
因为 identity 特性, 所以在 insert into 该 table 时, 不能指定该 identity 栏位值, 仅能指定其他栏位值, 而 identity 由资料库维护, 所以一般要在 insert 后取得该 identity 栏位值, 则通常使用下面方式:
利用全局变量 @@identity 来取得最后影响的 insert 后产生的 identity 值, 如此一来便能方便地使用 identity 栏位.
若要启用识别插入(identity insert)时, 也就是如空缺号要指定 identity 栏位值时, 或者是处理资料表整理或备出时, 会用到的方式:
set identity_insert products on
insert into products (id, product)values(12, 'screwdriver')
要注意的地方是可以 insert 空缺号, 也可以加至最后, 但系统会自动更新 identity 至最大值, 要注意一旦启用 identity_insert 时, 就一定要给定 identity 值, 另外并不能 update 该 identity 栏位值, 也就是说 identity_insert 该 identity 栏位仅 for insert, 不能 update.
查询目前 identity 值:
有时我们需要查询目前 table 中该 identity 栏位最大值是多少时, 可以利用 dbcc 指令, 如下:
dbcc checkident('product', NORESEED)
可以获得目前最大值的结果.
重设目前最大 identity 值:
一样利用 dbcc 指令, 如下:
dbcc checkident('product',RESEED,100)
如此一来, 便能将目前的最大 identity 值指向100, 当然若故意设比目前最大值小时, 系统仍会接受, 但若 identity 遇上重覆资料时(如将 identity 设为 primary key时), 将会发生重大问题, 该 table 变成无法 insert 资料, 因为会发生 primary key violation, 解决方法当然就是将目前的 identity 修复, 直接使用
dbcc checkident('products', RESEED)
或
dbcc checkident('products')
1、using关键字用于管理对象的生命周期。一旦对象完成使用,便会自动被销毁,无需手动释放对象占用的资源。using语句通常用于 *** 作需要释放非托管资源(如文件、数据库连接等)的类。2、with关键字在C#语言中没有特定的用途。在其他编程语言中,with一般用于简化代码中的重复 *** 作。但在C#中,with只是一个保留关键字,没有实际用途。
using等价于join *** 作中的on,例如a和b根据id字段关联,那么以下等价using(id)
on a.id=b.id
以下2个实例等价:
select a.name,b.age from test as a
join test2 as b
on a.id=b.id
select a.name,b.age from test as a
join test2 as b
using(id)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)