我已經創建了一個用戶定義的類型(有腳本來創建)類型衝突:操作數如下使用SQL Server上的用戶定義的表類型
CREATE TYPE [dbo].[udt_ProductID_SellingPrice] AS TABLE(
[Product_Id] [int] NOT NULL,
[Selling_Price] [money] NULL,
PRIMARY KEY CLUSTERED
(
[Product_Id] ASC
)WITH (IGNORE_DUP_KEY = OFF)
)
在我創建了一個功能相同的數據庫使用此類型:
CREATE FUNCTION [dbo].[fn_NetGP_tbl](@InputSKUs udt_ProductID_SellingPrice READONLY, @Currency VARCHAR(3), @SiteName VARCHAR(255), @CatalogueSite VARCHAR(5), @SiteGroup VARCHAR(255))
RETURNS @Results TABLE
(
Product_Id INT NOT NULL,
Selling_Price MONEY NULL,
Net_GP MONEY NULL
)
AS
BEGIN
我聲明輸入的SKU爲在內存中的表如下並調用該函數如下:
DECLARE @InputSKUs dbo.udt_ProductId_SellingPrice
INSERT INTO @InputSKUs VALUES(10352316, 500.00)
SELECT * FROM Sensu_Staging.dbo.fn_NetGP_tbl(@InputSKUs, 'GBP', 'Site_Name', 'SITE', 'Site_Group')
並得到(東西我發現,相當混亂的)錯誤消息:
操作數類型衝突:udt_ProductID_SellingPrice是udt_ProductID_SellingPrice不相容
我真的不能工作了我在做什麼錯了 - 這對以前的數據庫有效,我唯一做的改變是向ProductID_SellingPrice類型添加一個主鍵/聚集索引,這似乎把所有東西都拋棄了。
我需要改變功能?或者是不可能在內存中的自定義表類型上創建索引?我們希望通過索引該表來加速這個過程,但如果不可能,那麼我想我們必須找到其他方法。
乾杯,
馬特
您可以添加相關部分的函數體(例如您如何引用'@ InputSKUs')? –
已經整理它,得到它的工作 - 我仍然在功能的身體因此相當令人困惑的錯誤消息,有以前的(非主鍵)用戶自定義類型的幾個引用(名稱相同)! –