MS SQL рд╕рд░реНрд╡рд░ рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рдирд╛



рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ MS SQL рд╕рд░реНрд╡рд░ рдбреЗрдЯрд╛рдмреЗрд╕ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдкрдХреЛ рджреВрд╕рд░реЗ рднреМрддрд┐рдХ рдХрдВрдкреНрдпреВрдЯрд░ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдмреИрдХрдЕрдк рдмрдирд╛ рдЪреБрдХреЗ рд╣реИрдВ рдФрд░ рдЦреБрд╢реА рд╕реЗ рдПрдХ рд░рд┐рдХрд╡рд░реА рдореЗрдВ рдЬреБрдЯ рдЧрдП рд╣реИрдВред рд▓реЗрдХрд┐рди рдлрд┐рд░ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдЬрд╣рд╛рдВ рдЖрдк рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдПрдордПрд╕ SQL тАЛтАЛрд╕рд░реНрд╡рд░ рдХрд╛ рдПрдХ рдкреБрд░рд╛рдирд╛ рд╕рдВрд╕реНрдХрд░рдг рд╕реНрдерд╛рдкрд┐рдд рд╣реИред рд╕реНрдЯреИрдХ рдУрд╡рд░рдлреНрд▓реЛ рдЖрдкрдХреЛ рднрд░реЛрд╕рд╛ рджрд┐рд▓рд╛рддрд╛ рд╣реИ рдХрд┐ рд╕рдм рдХреБрдЫ рдЦрд░рд╛рдм рд╣реИред рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдРрд╕рд╛ рд╣реИ?


рдмреЗрд╢рдХ, рдПрдХ рдирдП рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдПрдХ рдкреБрд░рд╛рдиреЗ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рдПрдХ рдХреНрд▓рд╛рд╕рд┐рдХ рдирд╣реАрдВ рд╣реИ рдФрд░ рд╕рдмрд╕реЗ рд╕рд╣реА рдкрд░рд┐рджреГрд╢реНрдп рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдХреНрд╕рд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ рдХрд┐ рд╡реЗ рдПрд╕рдХреНрдпреВрдПрд▓ рдХреЗ рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рдирдП рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ, рдХреБрдЫ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 2008 R2, рдХреНрдпреЛрдВрдХрд┐ рдПрдордПрд╕ SQL тАЛтАЛрдХреЗ рд╕рд╛рде рдкреНрд░рддреНрдпрдХреНрд╖ рд╕рдВрдЧрддрддрд╛ рдЙрддреНрдХреГрд╖реНрдЯ рд╕реЗ рдЕрдзрд┐рдХ рд╣реИред рдФрд░, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЗ рдЧреНрд░рд╛рд╣рдХ рдиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдкрдиреЗ рд▓рд┐рдП MS SQL 2016 рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ, рдФрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ MS SQL 2014 рдЖрдкрдХреЗ рдкрд░реАрдХреНрд╖рдг рд╕рд░реНрд╡рд░ рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рд╣реИред

Microsoft рдиреЗ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдЦреБрд▓рд╛рд╕рд╛ рдХрд┐рдпрд╛ - рд╡реЗ рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рдЙрдирдХреЗ рдкрд╛рд╕ рдкрд┐рдЫрдбрд╝реА рд╕рдВрдЧрддрддрд╛ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдХреЛрдИ рд╣рд▓рдЪрд▓ рдирд╣реАрдВ рд╣реИред рдирдП рд╕рд░реНрд╡рд░ рдореЗрдВ рдмрдирд╛рдП рдЧрдП рдмреИрдХрдЕрдк рдХреЛ рдкреБрд░рд╛рдиреЗ рд╕рд░реНрд╡рд░ рдкрд░ рдмрд╣рд╛рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╣рд╛рдБ, рдЙрдирдХреЗ рдкрд╛рд╕ DTS рдЬреИрд╕реЗ рдЙрдкрдХрд░рдг рд╣реИрдВ, рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдирд╛, рдирд┐рд░реНрдпрд╛рдд-рдЖрдпрд╛рдд, рдЖрджрд┐ред рд▓реЗрдХрд┐рди рд╡реЗ рдЗрддрдиреЗ рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдФрд░ рдмреЛрдЭрд┐рд▓ рд╣реИрдВ рдХрд┐ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдмрдбрд╝реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рд╕рд╛рдорд╛рдиреНрдп рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд╣реАрдВ рд╣реИред рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ, рдореИрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рд╕рдлрд▓ рдирд╣реАрдВ рд╣реБрдЖред

рд╣рд╛рдВ, рдЖрдк рдбреЗрдЯрд╛ рд╕рд╣рд┐рдд рдкреВрд░реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд▓рд┐рдП SQL рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ, рдЖрдкрдХреЗ рдкрд╛рд╕ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдмрдбрд╝реЗ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдмреВрдБрдж рдлрд╝реАрд▓реНрдб рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рд╣реИ, рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░ рдкреВрд░реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдЖрдХрд╛рд░ 500+ рдЬреАрдмреА рд╣реИред рдХрд▓реНрдкрдирд╛ рдХреАрдЬрд┐рдП рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдХрд┐рддрдирд╛ рд╕рдордп рд▓рдЧреЗрдЧрд╛, рдЗрд╕реЗ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдФрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдХрд┐рддрдирд╛ рд╕рдордп рд▓рдЧреЗрдЧрд╛ред

рдЗрд╕рд▓рд┐рдП, рдХрд╛рд░реНрдп рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ MS SQL рд╕рд░реНрд╡рд░ рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ (рд╕рдВрд░рдЪрдирд╛ рдФрд░ рдбреЗрдЯрд╛) рдХреЛ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдирд╛ рд╣реИред рдореИрдВ рдХрд╛рдлреА рд╕рд░рд▓ рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рдЖрдпрд╛ рдерд╛ рдЬрд┐рд╕реЗ рдореИрдВ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдмреЗрд╢рдХ, рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдореЗрдВ рд╕реАрдорд╛рдУрдВ рдХреА рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕рдВрдЦреНрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдореЗрд░реА рд░рд╛рдп рдореЗрдВ рдпрд╣ рдбреАрдЯреАрдПрд╕ рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИред

рдирдВрдмрд░ рдПрдХ рд╕реАрдорд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдПрдордПрд╕ SQL тАЛтАЛрдкреНрд░рдмрдВрдзрди рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рджреЛрдиреЛрдВ рд╕рд░реНрд╡рд░реЛрдВ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдкреБрд░рд╛рдиреЗ рдФрд░ рдирдПред рдпрджрд┐ рдпрд╣ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ, рддреЛ рдпрд╣ рдЙрд╕ рдорд╢реАрди рдкрд░ рд╕рдВрднрд╡ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд╣рд╛рдВ рд╕реЗ рдЖрдк рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, SQL рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ рдЬрд┐рд╕рдореЗрдВ рдЖрдкрдХреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдкрд╣рд▓реЗ рдЗрд╕ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рдмреИрдХрдЕрдк рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдпрд╛ рд╕реАрдзреЗ * df рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЦреАрдВрдЪреЗрдВред рдирдИ рдорд╢реАрди (рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ SQL рд╕рд░реНрд╡рд░ рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг рдкрд╣рд▓реЗ рд╕реЗ рдореЗрд▓ рдЦрд╛рдПрдЧрд╛) рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛рдмреЗрд╕ рдлрд╛рдЗрд▓реЗрдВ (рдбрд┐рдЯреИрдЪ / рдЕрдЯреИрдЪ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ)ред

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

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

1) рдирдП рд╕рд░реНрд╡рд░ рдкрд░, рдПрдХ рд╣реА рдбреЗрдЯрд╛рдмреЗрд╕ рдФрд░ рдкреЛрд░реНрдЯреЗрдмрд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдлрд╛рдЗрд▓рдЧреНрд░реБрдк рдХреЗ рд╕рд╛рде рдПрдХ рдЦрд╛рд▓реА рдбреЗрдЯрд╛рдмреЗрд╕ рдмрдирд╛рдПрдВред

2) рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реНрдХреАрдорд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╣рдо рд╕рднреА рдбреЗрдЯрд╛рдмреЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ (рдЯреЗрдмрд▓, рдЗрдВрдбреЗрдХреНрд╕, рд╡реНрдпреВ, рдЯреНрд░рд┐рдЧрд░реНрд╕, рд╕реНрдЯреЛрд░ рдХрд┐рдП рдЧрдП рдХрд╛рд░реНрдп рдФрд░ рдлрд╝рдВрдХреНрд╢рди) рдмрдирд╛рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡рд┐рджреЗрд╢реА рдХреБрдВрдЬреА рдмрд╛рдзрд╛рдУрдВ рдХреЛ рдмрдирд╛рдП рдмрд┐рдирд╛ред рдЖрдк рдЗрд╕ рд╕реНрддрд░ рдкрд░ FK рдирд╣реАрдВ рдмрдирд╛ рд╕рдХрддреЗ, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдореЗрдВ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХрд░реЗрдВрдЧреЗред

3) рд╣рдо рдЙрд╕ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕рд╕реЗ рд╣рдо рдбреЗрдЯрд╛ рдХреЛ рд▓рд┐рдВрдХреНрдб рд╕рд░реНрд╡рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВрдЧреЗ рддрд╛рдХрд┐ рдЖрдк рдкреБрд░рд╛рдиреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирдП рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХреЗрдВред

EXEC sp_addlinkedserver @server=N'LinkedServerAlias', @srvproduct=N'', @provider=N'SQLNCLI', @datasrc=N'LinkedServerHost\LinkedServerName'; EXEC sp_addlinkedsrvlogin 'LinkedServerUser', 'false', null, 'RealUser', 'RealUserPassword'; 

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

 INSERT INTO ? SELECT * FROM ? 

рдкреНрд░рд╢реНрди рдЪрд┐рд╣реНрди рдХреЗ рдмрдЬрд╛рдп, sp_msforeachtable рдкреНрд░рддреНрдпреЗрдХ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдирд╛рдо рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХреНрд╡реЗрд░реА рдХреЛ рдХрдИ рдмрд╛рд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИ (рдкреНрд░рддреНрдпреЗрдХ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╛рд░)ред

рдпрд╣рд╛рдБ рдореИрдВ рд╕рдмрд╕реЗ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд░реЗрдХ рдЖрдпрд╛ред

рдХ) рд╕рдорд╕реНрдпрд╛ рдирдВрдмрд░ рдПрдХ рдпрд╣ рд╣реИ рдХрд┐ рдкрд╣рдЪрд╛рди рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рд╕рд╛рде рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:

 SET IDENTITY_INSERT ON; --INSERT INTO ... ( ); SET IDENTITY_INSERT OFF; 

b) рд╕рдорд╕реНрдпрд╛ рдирдВрдмрд░ рджреЛ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдпрд╣ рдХреЙрд▓ рдЙрди рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдкрд░ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рдЬрд┐рдирдХреЗ рдкрд╛рд╕ IDENTITY рдлрд╝реАрд▓реНрдб рдирд╣реАрдВ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдХреЛрдИ IDENITY рд╕реНрддрдВрдн рд╣реИ рдпрд╛ рдирд╣реАрдВред

рдпрд╣ рдЗрд╕ рдкреНрд░рд╢реНрди рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

 SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE (TABLE_NAME='SomeTable') AND (COLUMNPROPERTY(object_id('dbo.SomeTable'), COLUMN_NAME, 'IsIdentity') = 1) 

c) рд╕рдорд╕реНрдпрд╛ рдирдВрдмрд░ рддреАрди рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛, IDENITY_INSERT ON рдореЛрдб рдореЗрдВ, рдЖрдк рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ

 INSERT INTO ... SELECT * FROM ... 

, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдЖрдк рдЗрд╕ рдХреНрд╡реЗрд░реА рдХреЗ рд╕рд╛рде рддрд╛рд▓рд┐рдХрд╛ рдлрд╝реАрд▓реНрдб рдХреЛ рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 SELECT SUBSTRING( (SELECT ', ' + QUOTENAME(COLUMN_NAME) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'SomeTable' ORDER BY ORDINAL_POSITION FOR XML path('')), 3, 200000); 

4) рд╣рдо рд╕рднреА рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдореНрдорд┐рд▓рд┐рдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╣реИрдВ:

рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬрдирд░реЗрд╢рди рдкреНрд░рдХреНрд░рд┐рдпрд╛
 EXEC sp_msforeachtable N' DECLARE @command varchar(MAX); DECLARE @name varchar(200); SET @name=''?''; SET @name = SUBSTRING(@name, 8, LEN(@name)-8); SET @command = ''''; SELECT @command= SUBSTRING( (SELECT '', '' + QUOTENAME(COLUMN_NAME) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '''' + @name + '''' ORDER BY ORDINAL_POSITION FOR XML path('''')), 3, 200000); SET @command = ''INSERT INTO ''+ @name +'' (''+ @command + '') SELECT '' + @command + '' FROM '' + ''LinkedServerAlias.SourceDatabase.'' + ''?''; SET @command= ''IF EXISTS (select * from INFORMATION_SCHEMA.COLUMNS where (TABLE_NAME='''''' + @Name + '''''') AND (COLUMNPROPERTY(object_id(''''dbo.''+@Name+''''''), COLUMN_NAME, ''''IsIdentity'''') = 1)) SET IDENTITY_INSERT '' + @name + '' ON; '' +@command; SET @command=@command+'';'' + ''IF EXISTS (select * from INFORMATION_SCHEMA.COLUMNS where (TABLE_NAME='''''' + @Name + '''''') AND (COLUMNPROPERTY(object_id(''''dbo.''+@Name+''''''), COLUMN_NAME, ''''IsIdentity'''') = 1)) SET IDENTITY_INSERT '' + @name + '' OFF;''; PRINT (@command); --EXEC(@command); //  ,    ,       ' 


5) рд╣рдо рдЙрддреНрдкрдиреНрди рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ

6) рд╣рдо рд╕рднреА рд╡рд┐рджреЗрд╢реА рдХреБрдВрдЬреА рдмрд╛рдзрд╛рдУрдВ (рдЕрдм рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдВрднрд╡ рд╣реИ) рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВред

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

8) рд╣рдо рдЕрдкрдиреЗ рдЖрдк рдХреЛ рд╕рд╛рдл рдХрд░ рд▓реЗрддреЗ рд╣реИрдВ (рд▓рд┐рдВрдХреНрдб рд╕рд░реНрд╡рд░ рдХреЛ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд░ рджреЗрддреЗ рд╣реИрдВ):

 EXEC sp_droplinkedsrvlogin 'LinkedServerUser', null; sp_dropserver 'LinkedServerAlias'; 

рд╡рд┐рдзрд┐ рдХреА рд╕реАрдорд╛рдПрдБред

1) рдПрдХ рд╕рдорд╛рди рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛, рдЯреЗрдмрд▓ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдЬрд┐рд╕рдореЗрдВ рдЯрд╛рдЗрдк рдПрдХреНрд╕рдПрдордПрд▓ рдХреЗ рдХреЙрд▓рдо рд╣реИрдВред
рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХрдИ рдЕрдиреНрдп рдкреНрд░рддрд┐рдмрдВрдз рд╣реИрдВ, рдЬреИрд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд SQL рд╕рд░реНрд╡рд░ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рдХрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ред рдЖрдк рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдореИрдВ рдЙрдирдХреЗ рд▓рд┐рдП рдПрдХ рд▓реЗрдЦ рдЬреЛрдбрд╝реВрдВрдЧрд╛ред

рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж! рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рдХреА рдорджрдж рдХрд░рддрд╛ рд╣реИред

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


All Articles