问题
In Oracle's PL-SQL, you can declare a variable and define its type based on a table column:
declare var1 table.column%TYPE;
Is it possible to do something similar in MS SQL Server?
回答1:
No you can't do this. The closest equivalent is User-Defined Data Types. This will give you a layer of abstraction that may help, but it is not the same as deriving a type from a column.
回答2:
It may skirt the real issue, but you can "cheat" a little bit by
Select *
INTO #tmp
From MyTable
Where 1 = 0
Will automatically create a temp table with all columns with correct data types.
来源:https://stackoverflow.com/questions/2683686/declaring-variable-type-based-on-a-column-type