SQL SERVER 2008 表值参数
/*
SQL SERVER 2008 表值参数
SQL SERVER 引入了抗议用来将行集传入到存储过程和用户定义函数的表值参数.
这个功能可以使存储过程和函数具有封装多个行集的功能,而不是必须一行一行地调
数据修改过程和穿件多个输入参数来生硬的转化为多行.
我们在应用中经常用到的插入时把代码封装到存储过程中。
*/
CREATE DATABASE TESTDB
USE TESTDB
GO
CREATE TABLE USERINFO(USERID INT,USERNAME NVARCHAR(50))
GO
CREATE PROC USP_INSERT_USERINFO
@ID INT,
@NAME NVARCHAR(50)
AS
INSERT USERINFO
VALUES(@ID,@NAME)
GO
/*
上面的环境建立好后,如果我们需要向表中插入行数,就需要调用次这个
存储过程。在大多数情况下这样的情况是可以接受的,如果你经常需要一次插入多
条。那么就可以用中新增的表值参数类型,可以将要插入的数据传入到表值参
数中,然后通过表值参数一次性插入的表中。
下面演示该参数类型。
*/
--要使用表值参数,首先要定义用户定义表数据类型。
CREATE TYPE T_USERINFO AS TABLE
(USERID INT,
USERNAME NVARCHAR(50)
)
GO
--下面可以对上面的过程USP_INSERT_USERINFO进行修改。
CREATE PROC USP_INSERT_USERINFO_NEW
@USERINFO T_USERINFO READONLY --必须使用READONLY 选项声明表值参数
AS
INSERT USERINFO
&nbs
相关文档:
文章由来: 最近需要做这样的测试:Install the products on machine which case-insensitive SQL installed.
所谓case-insensitive SQL installed 指在数据库安装时选择排序规则时 需要选择大小写区别的规则。
排序规则简介:
MS是这样描述的:"在 Micr ......
原始数据
TERMINAL_ID
MAXDATE
TERMINAL_ID
OCCUR_DATE_TIME
TROUBLE_CD
1
12345
20100401102754
12345
20100401102754
210
2
12345
20100401102754
12345
20100401102754
211
3
12345
20100401102754
12345
20100401102754
?09
......
declare @xml xml
set @xml = '<root/>'
select @xml
declare @value varchar(10)
set @value = 'val1'
set @xml.modify('insert <item value="{sql:variable("@value")}" /> into (/root)[1]')
select @xml
set @value = 'val2'
set @xml.modify('replace value of (/root/item/@value)[1] with "val2 ......
1 :普通SQL语句可以用Exec执行
例: Select * from tableName
Exec('select * from tableName')
& ......
快照隔离 Snapshot Isolation
1、写入程序不会阻碍读取程序
2、新的隔离级别提供了以下优点:
1) 提高了只读应用程序的数据可用性
2) 允许在OLTP环境中执行非阻止读取操作
3) 可对写入事务进行自动的强制冲突检测
3、演示代码
CREATE DATABASE demo2
GO
USE demo2
ALTER DATABASE demo2 SET allow_snapsho ......