代码之家  ›  专栏  ›  技术社区  ›  TonyP

是否有方法在不删除从属项的情况下更改(删除/创建)用户定义的表类型

  •  0
  • TonyP  · 技术社区  · 12 年前

    是否有一种方法可以更改(删除并创建)用户定义的表类型而不删除依赖对象。

    我有这种桌子类型

    CREATE TYPE [dbo].[ttOrderItems] AS TABLE(
        [Position] [int] NULL,
        [ItemCode] [varchar](16) NULL,
        [QtyOrdered] [int] NULL,
        [UOM] [varchar](2) NULL,
        [PriceQuoted] [decimal](10, 2) NULL
    )
    

    和依赖表类型函数

    CREATE function [dbo].[ftCatalogItems](@comno varchar(3),@cuno varchar(6),@items  ttOrderItems readonly) returns table as
    /*-------------------------------------------------------
    DECLARE @COMNO VARCHAR(3)='010',@CUNO VARCHAR(6)='000164'
    declare @items ttOrderItems;
    select * from @items
    insert @items
    select '1231-221',1,'EA',20.20
    union  select '110223-245',10,'EA',2001.20
    --------------------------------------------------------*/
    return(
        select Position,ItemCode,QtyOrdered
            ,PriceQuoted
            ,Net
            ,t$qanp QtyApplicable
            ,Status=case 
                    when t$item is null then 'Not in Catalog' 
                    when t$stdt > getdate() then 'Availle only on or after '+Convert(varchar(30),t$stdt,106)
                    when  datediff(DD,getdate(),isnull(nullif(t$tdat,''),'4712-01-01')) < 1 then 'EXPIRED'
                    when items.PriceQuoted != Net then 'Quoted Price do not match Catalog price'
                    else Null
                end 
        from @items items
        Left Join ediCatalog c on ltrim(c.t$item)=ItemCode AND COMNO=@COMNO AND T$CUNO=@CUNO  and c.[Server]=dbo.fsBaanServer()
    )
    

    现在我想更改(删除/创建)ttOrderItems类型,。如何在不首先删除ftCatalogItems的情况下执行此操作?

    3 回复  |  直到 12 年前
        1
  •  1
  •   ram_sql    12 年前
        2
  •  0
  •   Dinesh Reddy Alla    11 年前

    更改表名的步骤

    sp_rename old_table_name, new_table_name
    
        3
  •  0
  •   Community Mohan Dere    9 年前

    您可以临时删除依赖项,然后重新创建它们。你可以自动化这个过程,看看我的答案 here .

    推荐文章