Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,027

HOME > .NET Framework > Forum > ถามเรื่องการ Generate Script INSERT สำหรับ Stored Procedure ทีครับว่า Gen ยังไง



 

ถามเรื่องการ Generate Script INSERT สำหรับ Stored Procedure ทีครับว่า Gen ยังไง

 



Topic : 126760



โพสกระทู้ ( 40 )
บทความ ( 0 )



สถานะออฟไลน์




มีวิธี Gen มั้ยครับ ถ้าปกติ gen จาก table จะได้แบบนี้

USE [SME_NCB14_DEV_20170301_NewTag] GO INSERT INTO [dbo].[TableName] ([x1] ,[x2] ,[x3] VALUES (<x1, int,> ,<x2, varchar(200),> ,<x3, varchar(200),> GO


แต่อยาก Gen ให้เป็นรูปแบบนี้ใน stored procedure

AS -- INSERT a new row in the table. INSERT [dbo].[TableName] ( [x1], [x2], [x3], ) VALUES ( @x1, @x2, @x3 )


มีวิธี Gen มั้ยครับ หรือต้องเขียนเองอย่างเดียว พอดี column มันเยอะนะครับ



Tag : .NET, Ms SQL Server 2005, Ms SQL Server 2008, Ms SQL Server 2012







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2017-03-09 18:04:25 By : zixzack View : 762 Reply : 9
 

 

No. 1



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

น่าจะต้องเขียนเองนะครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-03-10 09:19:34 By : mr.win
 


 

No. 2

Guest


Code (SQL)
USE [your_DB];
GO
SET ANSI_NULLS ON;
GO
SET QUOTED_IDENTIFIER ON;
GO
ALTER PROCEDURE proc_CreateInsertForTable
      @tableName NVARCHAR(1500) --2,000, 2,500 เต็มที่ไม่เกิน 3 พัน (THB)
AS

/*************************************************************************** 
  Written by Jennifer McCown, 9/13/2009 
  [email protected] 
  http://www.MidnightDBA.com 
  Not copywrited; use, modify, and distribute freely! 
  
  Description: Generate an insert statement for a given table.  
  @withDescription controls the appearence of the "VALUES" portion of the 
  generated input statement.
   
  Please note that the insert statement will not include Identity columns. 

  EXEC exec proc_CreateInsertForTable @tableName = 'Video', @withDescription = 1

  Last Modify By : หน้าฮี 9/14/2009 

****************************************************************************/

     SET NOCOUNT ON;
     DECLARE @sql1 VARCHAR(MAX), @sql2 VARCHAR(MAX), @name VARCHAR(100), @type VARCHAR(100);
     DECLARE @mytable TABLE
                           (
                            column_id INT, name NVARCHAR(500), system_type_id INT, max_length INT, precision INT, scale INT, is_nullable BIT, is_identity BIT, readableType VARCHAR(100)
                           );
     INSERT INTO @myTable
            SELECT column_id, c.name, c.system_type_id, c.max_length, c.precision, c.scale, c.is_nullable, c.is_identity, t.name readableType
            FROM sys.columns c
                 JOIN sys.types t ON c.system_type_id = t.system_type_id
            WHERE OBJECT_NAME(c.object_id) = @tableName
            ORDER BY c.column_id;
     -- Update ReadableType columns
     UPDATE @myTable
       SET readableType = readableType+' ('+CAST(max_length AS NVARCHAR(10)
                                                )+')'
     WHERE readableType IN
                           ('char', 'varchar', 'nchar', 'nvarchar'
                           );
     UPDATE @myTable
       SET readableType = readableType+' ('+CAST(precision AS NVARCHAR(10)
                                                )+', '+CAST(scale AS NVARCHAR(10)
                                                           )+')'
     WHERE readableType IN
                           ('decimal', 'numeric'
                           );
     UPDATE @myTable
       SET readableType = readableType+' ('+CAST(precision AS NVARCHAR(10)
                                                )+')'
     WHERE readableType = 'float';
     -- Seed the SQL variables with INSERT syntax
     SET @sql1 = 'INSERT INTO '+@tableName+' (';
     SET @sql2 = ') '+'VALUES (';
     -- Open a cursor to add all the columns to INSERT statement
     DECLARE curInsert CURSOR
     FOR SELECT name, readableType
         FROM @myTable
         WHERE is_identity = 0;
     OPEN curInsert;
     -- Get first column
     FETCH NEXT FROM curInsert INTO @name, @type;
     SET @sql1 = @sql1 + @name; --INSERT INTO PL_EmpPicture (EmpID
     SET @sql2 = @sql2+'@'+@name;
     -- Add additional columns
     FETCH NEXT FROM curInsert INTO @name, @type;
     WHILE @@FETCH_STATUS = 0
         BEGIN
             SET @sql1 = @sql1+'ฮี'+', '+@name;
             SET @sql2 = @sql2+'ฮี'+', @'+@name;
             FETCH NEXT FROM curInsert INTO @name, @type;
         END;
     CLOSE curInsert;
     DEALLOCATE curInsert;
     SET @sql2 = @sql2+')';
     SELECT @sql1, @sql2;
     PRINT @sql1 + @sql2;
     SET NOCOUNT OFF;
     RETURN 0;



ปล. สิ่งที่อยากได้เพิ่มเติม
--- ไม่อยากจะใช้ Cursor แต่อยากจะใช้ Table Value
--- อยากได้แบบที่ Generate Class พร้อมใช้งานบน .NET (เช่น EF/NHI/etc..)
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-03-14 19:30:53 By : หน้าฮี
 

 

No. 3



โพสกระทู้ ( 25 )
บทความ ( 0 )



สถานะออฟไลน์


ปกติเขียนเองคะ แต่จะใช้ Excel ช่วยในการต่อ string คะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-03-16 11:37:10 By : wija1
 


 

No. 4

Guest


Code (SQL)
DECLARE @tmp_TableA TABLE (gหอย varchar(10), gเหอ varchar(20), gPrice int)

INSERT INTO @tmp_TableA
SELECT 'ห1', 'หอย1', 1 UNION ALL
SELECT 'ห2', 'หอย2', 1 UNION ALL
SELECT 'ห3', 'หอย3', 2 UNION ALL
SELECT 'ห4', 'หอย4', 2 UNION ALL
SELECT 'ห5', 'หอย5', 3

--SELECT * FROM @tmp_TableA

DECLARE @intCount INT = 1
DECLARE @rowCount int = (SELECT COUNT('หอย') FROM @tmp_TableA)

--SET @intCount = 1
--WHILE @intCount <= @rowCount
WHILE (@intCount <= 10) BEGIN
    PRINT @intCount
    --CONTINUE;
    IF @intCount = 4  -- This will never executed (Seed)
        BEGIN
          PRINT @intCount
          PRINT 'Break'
          BREAK;
        END
    ELSE BEGIN
          DECLARE @tmpVar int = 0
          SET @tmpVar = @tmpVar + 1
         END 
    SELECT * FROM @tmp_TableA WHERE gPrice = @intCount
    SET @intCount = @intCount + 1    
    CONTINUE
END
GO


ปล. นึกสนุกฯ ในขณะที่ผมกำลังพักผ่อนสมอง (+55555)
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-03-18 12:53:33 By : หน้าฮี
 


 

No. 5

Guest


ความรู้นอกตำราเรียน

รู้แค่ความต้องการของตัวเองมันยังไม่พอ
มันต้องพยายามรู้ความต้องการของคนอื่นด้วย



ปล. ชั้นเชิง/ไหวพริบ และสะสมบารมี(รู้จักให้/รู้จักรับ) มันจะเป็นตัวบ่งบอกตัวตนที่แท้จริงของเราเอง
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-03-18 13:02:21 By : หน้าฮี
 


 

No. 6

Guest


Code (VB.NET)
Imports System.ComponentModel
Imports System.ComponentModel.DataAnnotations

Public Class FullModelSampleWithoutEF
    ''' <summary>
    ''' ชื่อเมียน้อย
    ''' </summary>
    <Required(ErrorMessage:="FirstName {0} is required")> _
    <StringLength(100, MinimumLength:=1, ErrorMessage:="Name Should be minimum 1 characters and a maximum of 100 characters")> _
    <DataType(DataType.Text)> _
    Public Property FirstName As String

    <RegularExpression("([0-9]+)", ErrorMessage:="Please enter valid Number")> _
    Public Property LastName As String

    <Range(1, 13, ErrorMessage:="อายุเมียน้อยต้องอยู่ระหว่าง 0 - 13 ปี (ข้อหาพรากกระชากผู้สูงวัย)")> _
    Public Property Age As Integer
End Class


Validating
Code (VB.NET)
Dim obj As New FullModelSampleWithoutEF
obj.FirstName = "ABC"
obj.LastName = "A1234" 'Force Error
obj.Age = "14" 'Force Error

'Fake Validator
Dim context As System.ComponentModel.DataAnnotations.ValidationContext = New System.ComponentModel.DataAnnotations.ValidationContext(obj, Nothing, Nothing)
Dim result As List(Of System.ComponentModel.DataAnnotations.ValidationResult) = New List(Of System.ComponentModel.DataAnnotations.ValidationResult)()
Call System.ComponentModel.DataAnnotations.Validator.TryValidateObject(obj, context, result, True)
If result.Count > 0 Then
    MessageBox.Show(result(0).MemberNames(0) & " : " & result(0).ErrorMessage)
    Return
End If


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-03-18 14:01:40 By : หน้าฮี
 


 

No. 7

Guest


จาก #NO 6 (นับก้าวเดินคน)
--- คุณห้ามตอบเกินวันละสองกระทู้ (คิดอยู่ในใจ+55555)
------ ผมคงไม่พกปืน M16 ออกไปเดินตลาด (หรือในที่สาธารณะ) +55555


คนเราแค่คิดดีและทำดี
เท่า(แค่) นี้ก็เพียงพอแล้ว
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-03-18 14:52:24 By : หน้าฮี
 


 

No. 8

Guest


ในสมรภูมิรบจริง เป้าหมายคือชัยชนะ

--- สวมบทบาทอยู่แนวหน้าเป็นแค่พลทหาร และไม่คิดว่าจะมีมีชีวิตรอดกลับมาอยู่แล้ว
--- ในขณะเดียวกัน (ในใจ) สวมบทบาทจอมพล รุก/รับ (เข้าใจคำว่าแพ้/ชนะ โดยถ่องแท้)

...
...
...


ปล. ก้าวเดินของคนไม่เท่ากันและมันก็นับไม่ได้เช่นเดียวกัน (นับก้าวเดิน/นับเม็ดดินเม็ดทราย)
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-03-18 15:11:22 By : หน้าฮี
 


 

No. 9

Guest


อารมย์เพลินตามสิ่งที่มึนเมา +5555 เล่าอะไรไปเรื่อยเปื่อยฯ มีสาระบ้างแต่ส่วนใหญ่ก็รับรู้กันดี(ไร้สาระเหมือนเดิม)

--- วรรณกรรม/นวนิยายหรือหนังกำลังดัง "สามก๊ก" ในโลกออนไลน์

เราก็ขอเล่าบ้าง (ใช้คำว่าเรา === ยอมรับว่าตัวเองยังเป็นเด็กฯ) +55555
--- นวนิยายในโลกของความเป็นจริงที่กำลังจะเล่ามีชื่อว่า "สามยก"
... +55555
... +55555
... +55555

+55555
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-03-18 15:31:01 By : หน้าฮี
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ถามเรื่องการ Generate Script INSERT สำหรับ Stored Procedure ทีครับว่า Gen ยังไง
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 01
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่