我写了个存储过程
创建时系统提示该错误
存储过程如下:
CREATE PROC upInsertOutStore
@xml varchar(8000)
AS DECLARE @idoc int
DECLARE @Outid int
DECLARE @OutDate datetime 
SET @OutDate = getdate()

EXEC sp_xml_preparedocument @idoc output, @xml
SET NOCOUNT ON
DECLARE @CurrentError int

BEGIN TRANSACTION

INSERT INTO OutStore
SELECT @OutDate,OrderID,Customer,DeliverMethod,ShipAddress,Deliverman,Status
FROM OpenXML(@idoc,'/OutStore')
WITH OutStore

SELECT @CurrentError = @@ERROR IF @CurrentError != 0
BEGIN 
GOTO ERROR_HANDLER
END SELECT @Outid = @@IDENTITY

INSERT INTO OutStoreItems
SELECT @Outid,ItemID,PrductID,UnitPrice,Quantity
FROM OpenXML(@idoc,'/OutStore/OutStoreItems')
WITH OutStoreItems SELECT @CurrentError = @@ERROR IF @CurrentError != 0
BEGIN 
GOTO ERROR_HANDLER
END

UPDATE Inventory
    SET Inventory.qty = Inventory.qty - OutStoreItems.Quantity
    FROM OpenXML(@idoc, '/OutStore/OutStoreItems')
    WITH OutStoreItems
    WHERE Inventory.itemid=OutStoreItems.ItemID  select @CurrentError = @@Error    IF @CurrentError != 0
        BEGIN
            GOTO ERROR_HANDLER
        END
    COMMIT TRANSACTION    SET NOCOUNT OFF
    EXEC sp_xml_removedocument @idoc    RETURN @Outid    ERROR_HANDLER:
        ROLLBACK TRANSACTION
        SET NOCOUNT OFF    
        RETURN 0
GO请问如何解决,急啊,高手们帮帮忙哈

解决方案 »

  1.   

    我不想沉了,哪位高手指教下啊
    顺带错误消息:服务器: 消息 446,级别 16,状态 9,过程 upInsertOutStore,行 44
    无法解决 equal to 操作的排序规则冲突。
      

  2.   

    排序规则冲突!
    当两个表的字符集不同并作关联等比较操作时就会有这个错误.解决办法
    1.改表中字符型列的排序规则.
    2.强硬指定排序规则,在字段名后面加上这句   
    COLLATE 字符集的名字 如:COLLATE SQL_Latin1_General_CP1_CI_AS
      

  3.   

    用collateCOLLATE Chinese_PRC_CI_AI_WS