WEB开发网
开发学院数据库MSSQL Server SQL Server 2008表值类型参数 阅读

SQL Server 2008表值类型参数

 2010-04-28 15:43:59 来源:WEB开发网   
核心提示:注意: 这种临时表是在运行在客户端进行创建,这将会导致在客户端没有定义的情况下,SQL Server 2008表值类型参数(3),服务器端的存储过程将会执行失败,查看并选中 下列代码并点击Execute:USE SQL2008DemoINSERT INTO #EmployeeTempTableVALUES(1,'

注意: 这种临时表是在运行在客户端进行创建,这将会导致在客户端没有定义的情况下,服务器端的存储过程将会执行失败。

查看并选中 下列代码并点击Execute:

USE SQL2008Demo
INSERT INTO #EmployeeTempTable
VALUES(1,'John McLean','JohnMcLean@contoso.com')
INSERT INTO #EmployeeTempTable
VALUES(2,'Bob Smith','BobSmith@contoso.com')
INSERT INTO #EmployeeTempTable
VALUES(3,'Ted Connery','TedConnery@contoso.com')

注意: 插入的行在客户端的临时表中产生。

查看并选中 下列代码并点击Execute:

USE SQL2008Demo
GO
exec dbo.NewEmployeeTempTable

查看并选中 下列代码并点击Execute:

USE SQL2008Demo
GO
SELECT * FROM dbo.Employee
GO

查看并选中 下列代码并点击Execute:

USE SQL2008Demo
GO
Drop table dbo.#EmployeeTempTable
GO

注意:

1.临时表是在磁盘上创建并操作的,这将会导致大量的I/O操作。

2.它们在tempdb数据库中进行创建,并非常会导致锁定与阻碍问题。

3.在使用完成后,您必需手动清理数据,并删除临时表。

4.临时表的使用将会导致频繁的存储过程的重新编译。

使用表值类型参数插入数据

查看并选中 下列代码并点击Execute:

USE SQL2008DEMO
GO
Truncate table dbo.Employee

查看并选中 下列代码并点击Execute:

USE SQL2008DEMO
GO
CREATE TYPE EmployeeTableType AS TABLE
(EmpID INT, EmpName nvarchar(100), EmpEmail nvarchar(100))

注意: 在这里需要创建一个表类型来处理表值类型参数。

查看并选中 下列代码并点击Execute:

USE SQL2008DEMO
GO
CREATE PROCEDURE NewEmployee(@EmployeeDetails EmployeeTableType READONLY)
As
BEGIN
 INSERT INTO dbo.Employee
 SELECT * FROM @EmployeeDetails
END

上一页  1 2 3 4  下一页

Tags:SQL Server 类型

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接