MS SQL 2011 - рд▓реМрдЯреЗ рд╣реБрдП рдбреЗрдЯрд╛рд╕реЗрдЯ рдХрд╛ рд╕рдВрд╢реЛрдзрди

рдореВрд▓ рдзреНрд╡рдирд┐ рдФрд░ рдЬреАрд╡рди рдореЗрдВ, рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдзреНрд╡рдирд┐ рдкрд░рд┐рдгрд╛рдо рд╕реЗрдЯ рдХреА рддрд░рд╣ рд▓рдЧрддреА рд╣реИред рдпрд╣ рдЪреАрдЬрд╝ рдЖрдкрдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдкреНрд░рдХреНрд░рд┐рдпрд╛ рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯрд╛рдП рдЧрдП рдбреЗрдЯрд╛ рд╕реЗрдЯ рдореЗрдВ рдирд╛рдо рдФрд░ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдмрджрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред

рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рд╣рдо рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд╡рд┐рд╡рд░рдг рдореЗрдВ рддрд▓реНрд▓реАрди рд╣реЛ рдЬрд╛рдПрдВ, рд╣рдо рдпрд╣ рдЬрд╛рдВрдЪ рдХрд░реЗрдВрдЧреЗ рдХрд┐ SQL рд╕рд░реНрд╡рд░ рдХреЗ рдкрд┐рдЫрд▓реЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдиреЗ рд╕рдВрдЧреНрд░рд╣реАрдд рдкреНрд░рдХреНрд░рд┐рдпрд╛ рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯрд╛рдП рдЧрдП рдбреЗрдЯрд╛ рдХреЛ рдХреИрд╕реЗ рд╕рдВрднрд╛рд▓рд╛ред рдкрд░рд┐рдгрд╛рдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдиреНрд╣реЛрдВрдиреЗ рдХреНрдпрд╛ рдЕрд╡рд╕рд░ рдкреНрд░рджрд╛рди рдХрд┐рдП?

рдХрд╛рд░реНрдп рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ tbl_Test рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ рдЬрд┐рд╕рдореЗрдВ 3 рдХреЙрд▓рдо рд╣реЛрдВрдЧреЗред



--  ,    IF EXISTS (SELECT * FROM sys.objects WHERE name = N'tbl_Test' AND type = 'U') DROP TABLE tbl_Test GO SET ANSI_NULLS ON GO --   CREATE TABLE [dbo].[tbl_Test]( [Id] [int] NOT NULL, [Name] [varchar](50) NOT NULL, [PhoneNumber] [int] NOT NULL ) ON [PRIMARY] GO 

рдЕрдм рд╡рд╣рд╛рдВ рдХреБрдЫ рдЬрд╛рдирдХрд╛рд░реА рд▓рд┐рдЦреЗрдВред рдЗрд╕реЗ 1000 рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ рджреЗрдВ:
 --     CTE ;With Cte(Id,Name,PhoneNo) As ( Select Id = 1 ,Name='Name' + CAST( 1 As Varchar(50)) ,PhoneNo=12345678 Union All Select Id+1 ,Name= 'Name' + CAST( Id+1 As Varchar(50)) ,PhoneNo+1 From Cte Where Id <1000 ) --      Insert Into dbo.tbl_test Select * From Cte Option( Maxrecursion 0) --   Select * From tbl_Test 


рдЙрдкрд░реЛрдХреНрдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдирд┐рдореНрди рдбреЗрдЯрд╛ рд╕реЗрдЯ (рднрд╛рдЧ) рдХрд╛ рдЙрддреНрдкрд╛рджрди рд╣реЛрдЧрд╛
  Id рдирд╛рдо PhoneNumber
 1 Name1 12345678
 2 рдирд╛рдо 2 12345679
 3 рдирд╛рдо 3 12345680
 4 рдирд╛рдо 4 12345681
 5 рдирд╛рдо 5 12345682
 ... 


рдЕрдм рд╣рдо рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд▓рд┐рдЦреЗрдВрдЧреЗ рдЬреЛ рдХреНрд╡реЗрд░реА рдбреЗрдЯрд╛ рдХреЛ tbl_Test рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рдХрд░реЗрдЧреА
 CREATE PROCEDURE dbo.Usp_FetchRecords AS BEGIN Select Id ,Name ,PhoneNumber From dbo.tbl_Test END 


рд╕рдВрдЧреНрд░рд╣реАрдд рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рд╕реЗ рдбреЗрдЯрд╛ рдХрд╛ рдЕрдВрддрд┐рдо рд╕реЗрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдХрдИ рддрд░реАрдХреЗ рд╣реИрдВред рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдХрд╛ рд╡рд░реНрдгрди рдФрд░ рдЪрд░реНрдЪрд╛ рдЙрдирдХреЗ рд▓реЗрдЦ рдореЗрдВ рдПрд░рд▓реИрдВрдб рд╕реЛрдорд░рд╕рдХреЛрдЧ рдиреЗ рдХреА рд╣реИред рд╣рдо рдЕрд╕реНрдерд╛рдпреА рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред

рдЕрд╕реНрдерд╛рдпреА рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛


 -- #Temp    tempdb,    IF OBJECT_ID('tempdb..#Temp') IS NOT NULL BEGIN Drop Table #Temp END --   CREATE TABLE #Temp ( Id int ,EmpName Varchar(50) ,PhoneNo int ) --   ,    INSERT INTO #Temp ( Id ,EmpName ,PhoneNo ) EXEC dbo.Usp_FetchRecords --      Select * from #Temp 

рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЕрдЧрд░ рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рдХреМрди рд╕реЗ рдХреЙрд▓рдо рдФрд░ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдЗрд╕рдХреЗ рдиреБрдХрд╕рд╛рди рдФрд░ рдЗрд╕реА рддрд░рд╣ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг:


рдирдпрд╛ рддрд░реАрдХрд╛ MS SQL 2011


рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рдЖрдкрдХреЛ рдЗрди рдХрдорд┐рдпреЛрдВ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдФрд░ рдЕрдм рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреИрд╕реЗред
 EXEC Usp_FetchRecords WITH RESULT SETS( ( [Emp Id] int ,[Emp Name] varchar(50) ,[Phone Number] varchar(50) ) ) 

рдЖрдЙрдЯрдкреБрдЯ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реЛрдЧрд╛:
  рдИрдПрдо рдЖрдИрдбреА рдПрдореНрдк рдирд╛рдо рдлреЛрди рдирдВрдмрд░
 1 Name1 12345678 <
 2 рдирд╛рдо 2 12345679 <
 3 рдирд╛рдо 3 12345680 <
 4 рдирд╛рдо 4 12345681 <
 5 рдирд╛рдо 5 12345682 <
 ... 


рдкрд░рд┐рдгрд╛рдо рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕:
 WITH RESULT SETS( ( Column Name1 DataType [Size] ,Column Name2 DataType [Size] , . . . . . . . . . . . . , . . . . . . . . . . . . . . ,Column Name-n DataType [Size] ) , ( Column Name1 DataType [Size] ,Column Name2 DataType [Size] , . . . . . . . . . . . . , . . . . . . . . . . . . . . ,Column Name-n DataType [Size] ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . , ( Column Name1 DataType [Size] ,Column Name2 DataType [Size] , . . . . . . . . . . . . , . . . . . . . . . . . . . . ,Column Name-n DataType [Size] ) ) 


рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЖрдк рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рдкрд░рд┐рдгрд╛рдореА рдбреЗрдЯрд╛ рд╕реЗрдЯ рдореЗрдВ рдХреЙрд▓рдо рдХреЗ рдирд╛рдо рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдк рдЙрд╕ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдХреЛ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рднреАрддрд░ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдкреНрд░рдХрд╛рд░ рдХреА рдХрд╛рд╕реНрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдорддрд┐ рджреА рдЧрдИ рд╣реИред рдЕрдиреНрдпрдерд╛, рдбреЗрдЯрд╛рдмреЗрд╕ рдПрдХ рддреНрд░реБрдЯрд┐ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛ред

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдбреЗрдЯрд╛рдмреЗрд╕ рдЕрд╡реИрдз рдкреНрд░рдХрд╛рд░ рдХреЗ рд░реВрдкрд╛рдВрддрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХ рджреЗрдЧрд╛ред рд╣рдо рдПрдХ рдЕрдВрддрд░ рдкреНрд░рдХрд╛рд░ рд▓реМрдЯрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬрдмрдХрд┐ рдХреНрд╖реЗрддреНрд░ рдХреЛ varchar (50) рдХреЗ рд░реВрдк рдореЗрдВ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
 EXEC Usp_FetchRecords WITH RESULT SETS( ( [Emp Id] int ,[Emp Name] int --    int ,[Phone Number] varchar(50) ) ) 

рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рджреМрд░рд╛рди, рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ:

Msg 8114, рд╕реНрддрд░ 16, рд░рд╛рдЬреНрдп 2, рдкреНрд░рдХреНрд░рд┐рдпрд╛ Usp_FetchRecords, рдкрдВрдХреНрддрд┐ 5 рддреНрд░реБрдЯрд┐ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ varchar рдХреЛ int рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рддреНрд░реБрдЯрд┐ред

рдКрдкрд░ рджрд┐рдЦрд╛рдП рдЧрдП рдХреНрд╡реЗрд░реА рдХреЛ With Result рд╕реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХрд▓ рдкрд░рд┐рдгрд╛рдо рдбреЗрдЯрд╛рд╕реЗрдЯ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕ рддрдХрдиреАрдХ, рдЬреИрд╕рд╛ рдХрд┐ рд╕рд╛рдорд╛рдиреНрдп рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╕реЗ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдХреЛ рдХрдИ рдкрд░рд┐рдгрд╛рдо рд╕реЗрдЯреЛрдВ рддрдХ рдмрдврд╝рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЕрдм рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реЛрдЧрд╛ред

рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рдВрдЧреНрд░рд╣реАрдд рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИ рдЬреЛ рдбреЗрдЯрд╛ рдХреЗ рджреЛ рд╕реЗрдЯ рд▓реМрдЯрд╛рддреА рд╣реИред
 CREATE PROCEDURE [dbo].[Usp_ModifiedFetchRecords] AS BEGIN Select Id ,Name ,PhoneNumber From dbo.tbl_Test; Select Id ,Name From dbo.tbl_Test Where PhoneNumber % 2 = 0 END 


рджреВрд╕рд░реЗ рдЪреБрдирд┐рдВрджрд╛ рд░рд┐рдЯрд░реНрди рд╡рд╛рд▓реЗ рд╕рдмреНрд╕рдХреНрд░рд╛рдЗрдмрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЯреЗрд▓реАрдлреЛрди рдирдВрдмрд░ рдХреЗ рд╕рд╛рдеред рдирд┐рд╖реНрдкрд╛рджрди рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдпрд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рдкрд░рд┐рдгрд╛рдо рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛):



рдЕрдм рдмрд┐рдирд╛ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдмрджрд▓реЗ рд╣реА рдЕрдзрд┐рдХ рд╕реБрдкрд╛рдЪреНрдп рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП With With Result Set рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред
 EXEC Usp_ModifiedFetchRecords WITH RESULT SETS( ( [Emp Id From First Result Set] int ,[Emp Name From First Result Set] varchar(50) ,[Phone Number From First Result Set] varchar(50) ), ( [Emp Id From Second Result Set] int ,[Emp Name From Second Result Set] varchar(50) ) ) 

рдирд┐рд╖реНрдкрд╛рджрди рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдЕрдм рдХреА рднрд╛рд╡рдирд╛ рдореЗрдВ рд╣реЛрдЧрд╛:


рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд╛рд░реНрдпрд╡рд┐рдзрд┐ рдбреЗрдЯрд╛ рдХреЗ рджреЛ рдкрд░рд┐рдгрд╛рдо рд╕реЗрдЯ рд▓реМрдЯрд╛рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдпрджрд┐ рд╣рдо рдЙрдирдореЗрдВ рд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рдкрд░рд┐рдгрд╛рдо рд╕реЗрдЯ рдореЗрдВ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ SQL рдЗрдВрдЬрди рд╕реЗ рдПрдХ рддреНрд░реБрдЯрд┐ рдорд┐рд▓реЗрдЧреАред

Msg 11535, рд▓реЗрд╡рд▓ 16, рд╕реНрдЯреЗрдЯ 1, рдкреНрд░реЛрд╕реАрдЬрд░ Usp_ModifiedFetchRecords, Line 11 EXECUTE рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдлреЗрд▓ рд╣реЛ рдЧрдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХреЗ рд░рд┐рдЬрд▓реНрдЯ рд╕реЗрдЯреНрд╕ рдХреНрд▓реЙрдЬ рдореЗрдВ 1 рд░рд┐рдЬрд▓реНрдЯ рд╕реЗрдЯ (s) рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдиреЗ рдЗрд╕рд╕реЗ рдЬреНрдпрд╛рджрд╛ рд░рд┐рдЬрд▓реНрдЯ рд╕реЗрдЯ рднреЗрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред

рд░рд┐рдЬрд▓реНрдЯ рд╕реЗрдЯ рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛


рдХрднреА-рдХрднреА рдпрд╣ рдкрд░рд┐рдгрд╛рдо рдХреЗ рд╕рд╛рде рдкреНрд░рд╛рдкреНрдд рдкрд░рд┐рдгрд╛рдо рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдк рдЕрд╕реНрдерд╛рдпреА рдЯреЗрдмрд▓ рдпрд╛ рдЯреЗрдмрд▓ рдкреНрд░рдХрд╛рд░ рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рддрд╛рд▓рд┐рдХрд╛ рдкреНрд░рдХрд╛рд░ рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред
 Declare @tblStoreWithResultSetsData Table ( [Employee Id] int ,[Employee Name] varchar(50) ,[Emp Phone No] int ) insert into @tblStoreWithResultSetsData EXEC Usp_FetchRecords WITH RESULT SETS( ( [Emp Id] int ,[Emp Name] varchar(6) --  , --     6. --    ,[Phone Number] varchar(50) ) ) Select * From @tblStoreWithResultSetsData 

рдкрд░рд┐рдгрд╛рдо рдЕрдкреЗрдХреНрд╖рд┐рдд рд╣реЛрдЧрд╛, рдХрд░реНрдордЪрд╛рд░реА рдХрд╛ рдирд╛рдо 6 рд╡рд░реНрдгреЛрдВ рддрдХ рдХрдо рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕реЗ рдирд┐рдореНрди рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ (рдЕрдВрддрд┐рдо 10 рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ) рдореЗрдВ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ



рд╕рдВрднрд╡ рдЕрдиреБрдкреНрд░рдпреЛрдЧ


  1. SSIS рдкреИрдХреЗрдЬ рдореЗрдВ рдбреЗрдЯрд╛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ , рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдВ рд▓реЗрдЦ рджреЗрдЦреЗрдВред
  2. рд╕реНрдХреАрдорд╛ рдХреЛ рдмрджрд▓реЗ рдмрд┐рдирд╛ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдмрджрд▓реЗрдВ ред рдХрд▓реНрдкрдирд╛ рдХреАрдЬрд┐рдП рдХрд┐ рдПрдХ .Net рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмреВрд▓рд┐рдпрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдореВрд▓реНрдп рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдорд╛рди рдХреЛ рдЗрдВрдЯ рдпрд╛ рдЪрд╛рд░ (1) рдХреЗ рд░реВрдк рдореЗрдВ рдПрдиреНрдХреЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЖрдк рдХреЗрд╕ рдЬрдм рддрдм рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореВрд▓реНрдп рд░реВрдкрд╛рдВрддрд░рдг рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдХреЛ рдмрд┐рдЯ рдореЗрдВ (рдЗрдВрдЯ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ) рддреБрд░рдВрдд рдмрджрд▓рдирд╛ рдЖрд╕рд╛рди рдФрд░ рдЕрдзрд┐рдХ рд╕реБрдЦрдж рд╣реИред
  3. рдПрдХ рдкрд░рд┐рдгрд╛рдо рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рдФрд░ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдЬрдм рдПрдХ .Net рдкреНрд░реЛрдЧреНрд░рд╛рдо рдПрдХ рдЗрдВрдЯ рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдХреЙрд▓рдо рдЯрд╛рдЗрдк рдлреНрд▓реЛрдЯ рдХрд╛ рд╣реЛрддрд╛ рд╣реИред
  4. рд╕рд░реНрдХрд┐рдЯ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╛рд╡рд┐рдд рдбреАрдПрдПрд▓ рдкреНрд░рддрд┐рд░рдХреНрд╖рд╛ ред рдпрд╣ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдкреНрд░рддрд┐рд░рдХреНрд╖рд╛ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬрдм рдкрд░рд┐рдгрд╛рдо рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдкрд░рд┐рдгрд╛рдореА рдбреЗрдЯрд╛ рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП рд╕реНрддрдВрдн рдирд╛рдо рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВред рдлрд┐рд░ рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝реЗрдЧрд╛ рдХрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдирд╛рдо рдХреИрд╕реЗ рдмрджрд▓рддреЗ рд╣реИрдВред рд╕рдВрдЧреНрд░рд╣реАрдд рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рджреГрд╢реНрдп рдПрдирд╛рд▓реЙрдЧред


рдкреНрд░рддрд┐рдмрдВрдз


рдЖрдк рдЕрдВрддрд┐рдо рдбреЗрдЯрд╛ рд╕реЗрдЯ рдореЗрдВ рдЪрдпрдирд╛рддреНрдордХ рд╕реНрддрдВрдн рдкрд░рд┐рд╡рд░реНрддрди рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рджреМрд░рд╛рди рдПрдХ рддреНрд░реБрдЯрд┐ рдХрд╛ рдХрд╛рд░рдг рд╣реЛрдЧрд╛:
 EXEC Usp_FetchRecords WITH RESULT SETS( ( [Emp Id] int ,[Phone Number] varchar(50) ) ) 

рдЪреВрдВрдХрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рддреАрди рдХреЙрд▓рдо рдХрд╛ рдПрдХ рд╕реЗрдЯ рд▓реМрдЯрд╛рддреА рд╣реИред рддреНрд░реБрдЯрд┐ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реЛрдЧреА:

Msg 11537, рд▓реЗрд╡рд▓ 16, рд╕реНрдЯреЗрдЯ 1, рдкреНрд░реЛрд╕реАрдЬрд░ Usp_FetchRecords, рд▓рд╛рдЗрди 5 EXECUTE рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рд╡рд┐рдлрд▓ рд░рд╣рд╛ рдХреНрдпреЛрдВрдХрд┐ рд░рд┐рдЬрд▓реНрдЯ рд╕реЗрдЯ рдирдВрдмрд░ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреЗ рд░рд┐рдЬрд▓реНрдЯ рд╕реЗрдЯреНрд╕ рдХреНрд▓реЙрдЬ рдХреЗ рд╕рд╛рде 2 рдХреЙрд▓рдо (рдПрд╕) рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдереЗ, рд▓реЗрдХрд┐рди рд░рди рдЯрд╛рдЗрдо рдХреЗ рджреМрд░рд╛рди рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ 3 рдХреЙрд▓рдо (рдПрд╕)ред

рдЪрдХреНрд░ рд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рдг:
MS SQL рд╕рд░реНрд╡рд░ 2011: рд╕реНрдЯреИрдВрдб-рдЕрд▓реЛрди рдбреЗрдЯрд╛рдмреЗрд╕ , рдирдпрд╛ рдЕрдиреБрдХреНрд░рдо рдСрдмреНрдЬреЗрдХреНрдЯ , рдСрдлрд╕реЗрдЯ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ , рдПрд░рд░ рд╣реИрдВрдбрд▓рд┐рдВрдЧ , рд░рд┐рдЬрд▓реНрдЯ рд╕реЗрдЯ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд╕рд╛рде , SSMS рдореЗрдВ рдирдпрд╛ ред

Source: https://habr.com/ru/post/In123573/


All Articles