Din*_*ena 5 sql sql-server sql-server-2008
我想使用现有表架构在我的存储过程中声明一个表变量。
我有一个表,比如说TableA,它有大约 30 列。我想使用与声明临时表相同的列来声明表变量。
例如,我可以使用这样的模式声明一个临时表:
SELECT TOP 0 * INTO #Temp_TableA FROM TableA
Run Code Online (Sandbox Code Playgroud)
我可以类似地声明一个表变量吗???
来自MSDN:
不,表变量是一个变量,顾名思义,因此您需要先声明它,然后才能像所有其他 T-SQL 变量一样使用它,并且需要使用INSERT INTO
DECLARE @MyTable TABLE(
ID INT NOT NULL,
Data varchar(30) NOT NULL
);
INSERT INTO @MyTable
SELECT ID, data
From <table>
Run Code Online (Sandbox Code Playgroud)
您还可以在存储过程中使用临时表。只需将以下代码添加到存储过程的开头:
if object_id('tempdb..#TableA') is not null drop table #TableA
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9783 次 |
| 最近记录: |