狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

sql2005創建存儲過程導出數據inset插入語句-如何導出數據

liguoquan
2023年3月29日 16:19 本文熱度 740
:sql2005創建存儲過程導出數據inset插入語句-如何導出數據



存儲過程代碼如下圖:

create PROCEDURE [dbo].[Proc_Generateinsert]

@tablename SYSNAME,

@filter NVARCHAR(500),

@Order NVARCHAR(500)

AS

DECLARE @column VARCHAR(MAX)   

DECLARE @columndata VARCHAR(MAX)   

DECLARE @sql VARCHAR(MAX)   

DECLARE @xtype TINYINT   

DECLARE @name SYSNAME   

DECLARE @objectId INT   

DECLARE @objectname SYSNAME   

DECLARE @ident INT   

SET NOCOUNT ON   

SET @objectId = OBJECT_ID(@tablename)   

IF @objectId IS NULL -- 判斷對象是否存在

BEGIN

    PRINT 'The object not exists' 

    RETURN

END

SET @objectname = RTRIM(OBJECT_NAME(@objectId))   

IF @objectname IS NULL

   OR CHARINDEX(@objectname, @tablename) = 0 --此判斷不嚴密

BEGIN

    PRINT 'object not in current database' 

    RETURN

END   

IF OBJECTPROPERTY(@objectId, 'IsTable') < > 1 -- 判斷對象是否是table

BEGIN

    PRINT 'The object is not table' 

    RETURN

END   

select @ident = STATUS & 0x80

from   syscolumns

where  id = @objectid

       AND STATUS & 0x80 = 0x80   

IF @ident IS NOT NULL

    PRINT 'SET IDENTITY_insert ' + @TableName + ' ON'   

DECLARE syscolumns_cursor CURSOR  

FOR

    select c.name,

           c.xtype

    from   syscolumns c

    where  c.id = @objectid

    ORDER BY

           c.colid 

OPEN syscolumns_cursor   

SET @column = ''   

SET @columndata = '' 

FETCH NEXT from syscolumns_cursor INTO @name,@xtype   

WHILE @@fetch_status < > -1

BEGIN

    IF @@fetch_status < > -2

    BEGIN

        IF @xtype NOT IN (189, 34, 35, 99, 98) --timestamp不需處理,image,text,ntext,sql_variant 暫時不處理

        BEGIN

            SET @column = @column + CASE 

                                         WHEN LEN(@column) = 0 THEN ''

                                         ELSE ','

                                    END + '[' + RTRIM(@name) +']'  

            

            SET @columndata = @columndata + CASE 

                                                 WHEN LEN(@columndata) = 0 THEN 

                                                      ''

                                                 ELSE ','','','

                                            END 

                

                + CASE 

                       WHEN @xtype IN (167, 175) THEN '''''''''+rtrim([' + @name

                            + '])+''''''''' --varchar,char

                       WHEN @xtype IN (231, 239) THEN '''''''''+rtrim([' + @name

                            + '])+''''''''' --nvarchar,nchar

                       WHEN @xtype = 61 THEN '''''''''+convert(char(23),[' + 

                            @name + '],121)+''''''''' --datetime

                       WHEN @xtype = 58 THEN '''''''''+convert(char(16),[' + 

                            @name + '],120)+''''''''' --smalldatetime

                       WHEN @xtype = 36 THEN '''''''''+convert(char(36),[' + 

                            @name + '])+''''''''' --uniqueidentifier

                       ELSE '[' + RTRIM(@name) + ']'

                  END

        END

    END 

    FETCH NEXT from syscolumns_cursor INTO @name,@xtype

END 

CLOSE syscolumns_cursor 

DEALLOCATE syscolumns_cursor   

SET @sql = 'set nocount on select ''insert ' + @tablename + '(' + @column + 

    ') values(''as ''--'',' + RTRIM(@columndata) + ','')'' from ' + @tablename  

IF @filter IS NOT NULL

   AND LEN(RTRIM(@filter)) <> 0

    SET @sql = @sql + ' where ' + @filter  

IF @Order IS NOT NULL

   AND LEN(RTRIM(@Order)) <> 0

    SET @sql = @sql + ' Order By ' + @Order 

PRINT '--' + @sql   

exec (@sql)   

IF @ident IS NOT NULL

    PRINT 'SET IDENTITY_insert ' + @TableName + ' OFF'  

創建完后,執行存儲過程,要輸入三個變量,@tablename是表名,@filter是斷點查詢條件,接where后的條件,@Order是排序,按哪個字段排序,若全導,設為空即可

代碼如下圖:

exec Proc_Generateinsert @tablename='scm_bom_list',@filter='',@Order=''

執行完把結果復制出來執行即可

如下圖:



該文章在 2023/3/29 16:19:59 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved