0
嗨我知道在PL/SQL中可以使用引用類型爲%TYPE的列,但我想知道T-SQL中是否有相同的東西。過程 - 創建引用其他表列類型的表
PROCEDURE ....
CREATE TABLE TABLE_B
(
ID NUMBER NOT NULL,
NAME TABLE_A.NAME%TYPE
);
... END PROCEDURE
這可能嗎?
嗨我知道在PL/SQL中可以使用引用類型爲%TYPE的列,但我想知道T-SQL中是否有相同的東西。過程 - 創建引用其他表列類型的表
PROCEDURE ....
CREATE TABLE TABLE_B
(
ID NUMBER NOT NULL,
NAME TABLE_A.NAME%TYPE
);
... END PROCEDURE
這可能嗎?
短的答案編號:
我驗證的大風扇所以這裏有3個來源,所有的說法基本相同的事情:沒有,但它可以模擬(雖然痛苦),並將其添加了一層複雜性,以設計和維護。
參考文獻:
實施例:
的Oracle的%TYPE數據類型,可以創建可變並定義該變量的數據類型d通過表或視圖列或PL/SQL包變量。
在T-SQL中沒有Oracle的%TYPE數據類型的等價物,但可以使用用戶定義的數據類型(UDT)進行模擬(不太方便)。以下是一個示例:
EXEC sp_addtype 'MyType', 'smallint', NULL
CREATE TABLE MyTable (i MyType)
CREATE PROC MyProc
AS
BEGIN
DECLARE @i MyType
END
否:http://doc.ispirer.com/sqlways/Output/SQLWays-1-041.html。它聲明,「Microsoft SQL Server不支持,並且沒有Oracle%TYPE的等效項。」或MSFT論壇:http://social.msdn.microsoft.com/Forums/sqlserver/en-US/c1a3e39e-ba83-4573-82b6-4ddedb626d21/sql-server-equivalent-of-oracles-tablecolumnnametype?forum=transactsql如果您的表格數據類型可能會發生變化,您可以在表格和proc中使用用戶定義類型。這將意味着您對UDT所做的任何更改都會對錶和proc進行更改。 – xQbert 2014-09-24 14:37:20
http://stackoverflow.com/questions/1849396/t-sqls-equivalent-of-oracles-type-operator先前提問和回答。這只是表明,自2009年以來它並未被添加。 – xQbert 2014-09-24 14:49:15