我有一個過程,一些自定義類型的一些數據給它:過程不知道自定義類型
CREATE TYPE StringList AS TABLE
(Value NVARCHAR(255));
GO
CREATE TYPE KeyValueList AS TABLE
(
Id uniqueidentifier,
Value NVARCHAR(255));
GO
CREATE PROCEDURE
#update_AttributeFormel(
@modelPrefix NVARCHAR(255),
@definitionNeutralName NVARCHAR(255),
@newFormula NVARCHAR(255),
@providersToRemove StringList READONLY,
@providersToAdd KeyValueList READONLY)
AS ....
的ManagementStudio不顯示任何錯誤(因爲它會當我註釋掉類型聲明),但是當我執行腳本,我發現了以下錯誤:
Msg 2715, Level 16, State 3, Procedure #update_AttributeFormel, Line 2
Column, parameter, or variable #4: Cannot find data type StringList.
Parameter or variable '@providersToRemove' has an invalid data type.
Msg 2715, Level 16, State 3, Procedure #update_AttributeFormel, Line 2
Column, parameter, or variable #5: Cannot find data type KeyValueList.
Parameter or variable '@providersToAdd' has an invalid data type.
實施爲解釋在這裏:
http://www.simple-talk.com/sql/t-sql-programming/temporary-tables-in-sql-server/
http://www.sqlteam.com/article/sql-server-2008-table-valued-parameters
有沒有人有一個想法,爲什麼出現這種情況?
啊讓人心動!有沒有辦法創建類似臨時類型的東西? –
我們決定不創建臨時過程,而是創建存儲過程,並在遷移過程結束時刪除它們(以及類型)。但我認爲你的回答是正確的。謝謝! –
獎勵:用戶定義的類型出現在數據庫中的模式特有的,而不僅僅是數據庫本身。 –