āĻāĻ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻāĻŋ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖāĻ°ā§āĻĒā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻŋāĻ āĻāĻŦāĻ āĻāĻŽāĻžāĻ° āĻĻā§: āĻāĻŋāĻ¤ āĻāĻ˛ā§āĻĒ āĻ¨āĻŋāĻŦā§āĻĻāĻŋāĻ¤
āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤ āĻšāĻā§āĻā§ āĻāĻŋāĻ°ā§ āĻāĻžāĻ PROD āĻāĻ°āĻĄāĻŋāĻāĻ¸ (āĻāĻŽāĻāĻ¸ āĻāĻ¸āĻāĻŋāĻāĻāĻ˛) āĻāĻ° āĻāĻ¨ā§āĻ¯, āĻ¯āĻžāĻ° āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻāĻžāĻ¨ āĻā§āĻ¨āĻā§āĻ¨ āĻāĻ°āĻāĻŋāĻ˛, āĻāĻŽāĻŋ āĻ āĻā§āĻŽā§āĻļāĻ¨ā§āĻ° āĻāĻāĻāĻŋ āĻāĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž (āĻĒāĻŋāĻāĻ¸āĻŋ - āĻĒā§āĻ°ā§āĻĢ āĻ āĻĢ āĻāĻ¨āĻ¸ā§āĻĒā§āĻ) āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻāĻŋ: āĻĒāĻžāĻāĻ¯āĻŧāĻžāĻ°āĻļā§āĻ˛ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻā§āĻ° āĻāĻāĻāĻŋ āĻ¸ā§āĻāĨ¤ āĻĒā§āĻ°ā§āĻā§āĻ¨ā§āĻā§āĻļāĻ¨ā§āĻ° āĻĒāĻ°, āĻ¯āĻāĻ¨ āĻāĻĄāĻŧā§, āĻĻā§āĻ°ā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻ¤āĻžāĻ˛āĻŋ āĻŽāĻžāĻ°āĻž āĻā§āĻ˛, āĻ āĻŦāĻŋāĻ°āĻžāĻŽ āĻāĻ°āĻ¤āĻžāĻ˛āĻŋāĻ¤ā§ āĻĒāĻ°āĻŋāĻŖāĻ¤ āĻšāĻ˛, āĻ¤āĻžāĻ°āĻž āĻāĻŽāĻžāĻā§ āĻŦāĻ˛āĻ˛ - āĻāĻ āĻ¸āĻŦāĻ āĻāĻžāĻ˛, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻĻāĻ°ā§āĻļāĻāĻ¤ āĻāĻžāĻ°āĻŖā§, āĻāĻŽāĻžāĻĻā§āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻā§āĻ¨āĻāĻŋāĻ¨ā§āĻ¸ āĻĻāĻžāĻ¸ āĻ˛āĻŋāĻ¨āĻžāĻā§āĻ¸ā§ āĻāĻžāĻ āĻāĻ°ā§!
āĻāĻāĻž āĻāĻŋ āĻ¸āĻŽā§āĻāĻŦ? āĻāĻāĻ¨ā§āĻĄā§āĻā§āĻ° āĻ¨ā§āĻā§ āĻĨā§āĻā§ āĻāĻŽāĻ¨ āĻāĻāĻāĻŋ āĻāĻˇā§āĻŖ, āĻŦāĻžāĻ¤āĻŋ āĻĄāĻŋāĻŦāĻŋāĻ āĻ¨āĻŋāĻ¨ āĻāĻŦāĻ āĻ˛āĻŋāĻ¨āĻžāĻā§āĻ¸ā§āĻ° āĻ āĻ§ā§āĻ¨ā§ āĻĒāĻžāĻāĻ¯āĻŧāĻžāĻ°āĻļā§āĻ˛ā§āĻ° āĻā§āĻŦ āĻāĻ¤ā§āĻ¤āĻžāĻĒā§ āĻāĻāĻŋ āĻāĻāĻā§ āĻĻāĻŋāĻ¨? āĻāĻāĻž āĻāĻŋ āĻ¨āĻŋāĻˇā§āĻ ā§āĻ° āĻ¨āĻ¯āĻŧ?
āĻĒā§āĻ°āĻ¯ā§āĻā§āĻ¤āĻŋāĻ° āĻāĻ āĻ
āĻĻā§āĻā§āĻ¤ āĻ¸āĻāĻŽāĻŋāĻļā§āĻ°āĻŖā§ āĻāĻŽāĻžāĻā§ āĻ¨āĻŋāĻā§āĻā§ āĻ¨āĻŋāĻŽāĻā§āĻāĻŋāĻ¤ āĻāĻ°āĻ¤ā§ āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛āĨ¤ āĻ
āĻŦāĻļā§āĻ¯āĻ, āĻāĻŽāĻžāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ 30+ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻāĻžāĻ āĻāĻ°āĻž āĻŦāĻ¨ā§āĻ§ āĻāĻ°ā§ āĻĻāĻŋāĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻŽāĻžāĻ° āĻāĻļā§āĻāĻ°ā§āĻ¯ā§āĻ° āĻāĻ¨ā§āĻ¯, āĻāĻŽāĻŋ āĻāĻ āĻāĻžāĻ°ā§āĻ¯āĻĻāĻŋāĻŦāĻ¸ā§ āĻ¸āĻŦāĻāĻŋāĻā§ āĻ āĻŋāĻ āĻāĻ°āĻ¤ā§ āĻĒā§āĻ°ā§āĻāĻŋāĨ¤ āĻ¤āĻĒā§āĻ¤ āĻ¸āĻžāĻ§āĻ¨āĻžāĻ¯āĻŧ āĻ˛āĻŋāĻāĻāĻŋāĨ¤ āĻ¸ā§āĻ¤āĻ°āĻžāĻ, āĻāĻāĻ¨ā§āĻĄā§āĻ āĻĨā§āĻā§ āĻ˛āĻŋāĻ¨āĻžāĻā§āĻ¸ā§ āĻĒāĻžāĻāĻ¯āĻŧāĻžāĻ°āĻļā§āĻ˛ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ° āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻĒāĻ¨āĻŋ āĻā§āĻ¨ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻā§āĻ˛āĻŋāĻ° āĻ¸āĻŽā§āĻŽā§āĻā§āĻ¨ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨?
sqlcmd āĻŦāĻ¨āĻžāĻŽ Invoke-SqlCmd
āĻāĻŽāĻžāĻā§ āĻ¤āĻžāĻĻā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻĒāĻžāĻ°ā§āĻĨāĻā§āĻ¯ āĻŽāĻ¨ā§ āĻāĻ°āĻŋāĻ¯āĻŧā§ āĻĻā§āĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻ. āĻāĻžāĻ˛ āĻĒā§āĻ°āĻžāĻ¨ā§ āĻāĻāĻāĻŋāĻ˛āĻŋāĻāĻŋ sqlcmd āĻāĻāĻŋ āĻĒā§āĻ°āĻžāĻ¯āĻŧ āĻ āĻāĻŋāĻ¨ā§āĻ¨ āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻž āĻ¸āĻš āĻ˛āĻŋāĻ¨āĻžāĻā§āĻ¸ā§āĻ° āĻ āĻ§ā§āĻ¨ā§āĻ āĻāĻžāĻ āĻāĻ°ā§āĨ¤ āĻāĻŽāĻ°āĻž -Q āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻ¯āĻŧā§āĻ°āĻŋ āĻĒāĻžāĻ¸ āĻāĻ°āĻŋ, āĻāĻ¨āĻĒā§āĻ āĻĢāĻžāĻāĻ˛āĻāĻŋ -i āĻšāĻŋāĻ¸ā§āĻŦā§ āĻāĻŦāĻ āĻāĻāĻāĻĒā§āĻāĻāĻŋ -o āĻšāĻŋāĻ¸ā§āĻŦā§āĨ¤ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¨āĻžāĻŽ āĻ āĻŦāĻļā§āĻ¯āĻ āĻā§āĻ¸-āĻ¸āĻāĻŦā§āĻĻāĻ¨āĻļā§āĻ˛ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ -i āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨, āĻ¤āĻžāĻšāĻ˛ā§ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻļā§āĻˇā§ āĻ˛āĻŋāĻā§āĻ¨:
GO
EXIT
āĻ¯āĻĻāĻŋ āĻļā§āĻˇā§ āĻā§āĻ¨ EXIT āĻ¨āĻž āĻĨāĻžāĻā§, āĻ¤āĻžāĻšāĻ˛ā§ sqlcmd āĻāĻ¨āĻĒā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ āĻĒā§āĻā§āĻˇāĻž āĻāĻ°āĻ¤ā§ āĻāĻāĻŋāĻ¯āĻŧā§ āĻ¯āĻžāĻŦā§, āĻāĻŦāĻ āĻ¯āĻĻāĻŋ āĻāĻā§ āĻĒā§āĻ°āĻ¸ā§āĻĨāĻžāĻ¨ āĻāĻ°ā§āĻ¨ āĻ¨āĻž GO, āĻ¤āĻžāĻšāĻ˛ā§ āĻļā§āĻˇ āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻāĻžāĻ āĻāĻ°āĻŦā§ āĻ¨āĻžāĨ¤ āĻāĻāĻāĻĒā§āĻ āĻĢāĻžāĻāĻ˛āĻāĻŋāĻ¤ā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻāĻāĻāĻĒā§āĻ, āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨, āĻŦāĻžāĻ°ā§āĻ¤āĻž, āĻĒā§āĻ°āĻŋāĻ¨ā§āĻ āĻāĻ¤ā§āĻ¯āĻžāĻĻāĻŋ āĻĨāĻžāĻā§āĨ¤
Invoke-SqlCmd āĻāĻāĻāĻŋ DataSet, DataTables āĻŦāĻž DataRows āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĨ¤ āĻ āĻ¤āĻāĻŦ, āĻ¯āĻĻāĻŋ āĻāĻĒāĻ¨āĻŋ āĻāĻāĻāĻŋ āĻ¸āĻšāĻ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž, āĻāĻĒāĻ¨āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ sqlcmd, āĻāĻ° āĻāĻāĻāĻĒā§āĻ āĻĒāĻžāĻ°ā§āĻ¸ āĻāĻ°āĻžāĻ° āĻĒāĻ°ā§, āĻāĻāĻŋāĻ˛ āĻāĻŋāĻā§ āĻŦā§āĻ° āĻāĻ°āĻž āĻĒā§āĻ°āĻžāĻ¯āĻŧ āĻ āĻ¸āĻŽā§āĻāĻŦ: āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻā§ Invoke-SqlCmd. āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻ āĻĻāĻ˛ā§āĻ°āĻ āĻ¨āĻŋāĻāĻ¸ā§āĻŦ āĻā§āĻ¤ā§āĻ āĻāĻā§:
- āĻ¯āĻĻāĻŋ āĻāĻĒāĻ¨āĻŋ āĻ¤āĻžāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻ˛ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ° -āĻāĻ¨āĻĒā§āĻ āĻĢāĻžāĻāĻ˛āĻ¤āĻžāĻ°āĻĒāĻ° āĻĒā§āĻ°āĻ¸ā§āĻĨāĻžāĻ¨ āĻāĻ°ā§āĻ¨ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻ¨ā§āĻ, āĻāĻĒāĻ°āĻ¨ā§āĻ¤ā§, āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻ¸āĻŋāĻ¨āĻā§āĻ¯āĻžāĻā§āĻ¸ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§
- -āĻāĻāĻāĻĒā§āĻ āĻĢāĻžāĻāĻ˛ āĻ¨āĻž, āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻāĻāĻŋ āĻŦāĻ¸ā§āĻ¤ā§ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§
- āĻāĻāĻāĻŋ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĻā§āĻāĻŋ āĻ¸āĻŋāĻ¨āĻā§āĻ¯āĻžāĻā§āĻ¸ āĻāĻā§: -āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻāĻ¨āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻ¸ -āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻ¨āĻžāĻŽ -āĻĒāĻžāĻ¸āĻāĻ¯āĻŧāĻžāĻ°ā§āĻĄ -āĻĄā§āĻāĻžāĻŦā§āĻ¸ āĻāĻŦāĻ āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ - āĻ¸āĻāĻ¯ā§āĻ āĻ¸ā§āĻā§āĻ°āĻŋāĻ. āĻ āĻĻā§āĻā§āĻ¤āĻāĻžāĻŦā§ āĻ¯āĻĨā§āĻˇā§āĻ, āĻĒā§āĻ°āĻĨāĻŽ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ 1433 āĻŦā§āĻ¯āĻ¤ā§āĻ¤ āĻ āĻ¨ā§āĻ¯ āĻā§āĻ¨āĻ āĻĒā§āĻ°ā§āĻ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻž āĻ¸āĻŽā§āĻāĻŦ āĻ¨āĻ¯āĻŧāĨ¤
- āĻā§āĻā§āĻ¸āĻ āĻāĻāĻāĻĒā§āĻ, āĻĒā§āĻ°āĻŋāĻ¨ā§āĻ āĻāĻžāĻāĻĒ āĻāĻ°ā§āĻ¨, āĻ¯āĻž āĻā§āĻŦāĻ˛ "āĻ§āĻ°āĻž" sqlcmdāĻāĻ¨ā§āĻ¯ Invoke-SqlCmd
āĻāĻāĻāĻŋ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž - āĻāĻŦāĻ āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖ:
āĻ¸āĻŽā§āĻāĻŦāĻ¤ āĻāĻĒāĻ¨āĻžāĻ° āĻ˛āĻŋāĻ¨āĻžāĻā§āĻ¸ā§ āĻāĻ cmdlet āĻ¨ā§āĻ!
āĻāĻ° āĻāĻāĻžāĻ āĻŽā§āĻ˛ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĨ¤ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻŽāĻžāĻ°ā§āĻ āĻŽāĻžāĻ¸ā§ āĻāĻ cmdlet
āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§āĻ˛ āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨
sqlcmd-āĻāĻ° -v āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§āĻ˛ āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ°āĻ¯āĻŧā§āĻā§, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ āĻāĻāĻ°āĻāĻŽ:
# $conn ŅОдĐĩŅĐļиŅ ĐŊĐ°ŅĐ°ĐģĐž ĐēĐžĐŧĐ°ĐŊĐ´Ņ sqlcmd
$cmd = $conn + " -i D:appsSlaveJobsKillSpid.sql -o killspid.res
-v spid =`"" + $spid + "`" -v age =`"" + $age + "`""
Invoke-Expression $cmd
āĻāĻ¸āĻāĻŋāĻāĻāĻ˛ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻā§ āĻāĻŽāĻ°āĻž āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŋ:
set @spid=$(spid)
set @age=$(age)
āĻ¤āĻžāĻ āĻāĻāĻž āĻāĻāĻžāĻ¨ā§. *āĻ¨āĻŋāĻā§āĻ¸ā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§āĻ˛ āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻžāĻ āĻāĻ°ā§ āĻ¨āĻž. āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ° -v āĻāĻĒā§āĻā§āĻˇāĻž āĻāĻ°āĻž āĻ Invoke-SqlCmd āĻāĻĒā§āĻā§āĻˇāĻž āĻāĻ°āĻž -āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛. āĻ¯āĻĻāĻŋāĻ āĻ¯ā§ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ°āĻāĻŋ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛āĻā§āĻ˛āĻŋāĻā§ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°ā§ āĻ¤āĻž āĻāĻĒā§āĻā§āĻˇāĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻā§āĻ˛āĻŋ āĻ¨āĻŋāĻā§āĻ āĻāĻžāĻ āĻāĻ°ā§-āĻāĻĒāĻ¨āĻŋ āĻļā§āĻ˛ āĻĨā§āĻā§ āĻ¯ā§āĻā§āĻ¨ā§ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤ āĻ¯āĻžāĻāĻšā§āĻ, āĻāĻŽāĻŋ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛āĻā§āĻ˛āĻŋāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻŦāĻŋāĻā§āĻˇā§āĻŦā§āĻ§ āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛āĻžāĻŽ āĻāĻŦāĻ āĻ¤āĻžāĻĻā§āĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻ¨āĻž āĻāĻ°āĻžāĻ° āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨āĻŋāĻ¯āĻŧā§āĻāĻŋāĻ˛āĻžāĻŽ, āĻāĻŦāĻ āĻ āĻ¸āĻā§āĻ¯āĻāĻžāĻŦā§ āĻāĻŦāĻ āĻāĻĻāĻŋāĻŽāĻāĻžāĻŦā§ āĻāĻžāĻ āĻāĻ°ā§āĻāĻŋ, āĻ¯ā§āĻšā§āĻ¤ā§ SQL āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻāĻā§āĻ˛āĻŋ āĻā§āĻ:
# prepend the parameters
"declare @age int, @spid int" | Add-Content "q.sql"
"set @spid=" + $spid | Add-Content "q.sql"
"set @age=" + $age | Add-Content "q.sql"
foreach ($line in Get-Content "Sqlserver/Automation/KillSpid.sql") {
$line | Add-Content "q.sql"
}
$cmd = "/opt/mssql-tools/bin/" + $conn + " -i q.sql -o res.log"
āĻāĻāĻŋ, āĻāĻĒāĻ¨āĻŋ āĻŦā§āĻāĻ¤ā§ āĻĒā§āĻ°ā§āĻā§āĻ¨, āĻāĻāĻŋ āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§āĻ āĻāĻāĻ¨āĻŋāĻā§āĻ¸ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ āĻĨā§āĻā§ āĻāĻāĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĨ¤
āĻĢāĻžāĻāĻ˛ āĻāĻĒāĻ˛ā§āĻĄ āĻāĻ°āĻž āĻšāĻā§āĻā§
āĻāĻāĻ¨ā§āĻĄā§āĻ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖā§, āĻ¯ā§ āĻā§āĻ¨āĻ āĻ āĻĒāĻžāĻ°ā§āĻļāĻ¨ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻāĻŋ āĻ āĻĄāĻŋāĻ āĻāĻŋāĻ˛: āĻāĻŽāĻ°āĻž sqlcmd āĻāĻžāĻ˛āĻŋāĻ¯āĻŧā§āĻāĻŋ, āĻāĻāĻāĻĒā§āĻ āĻĢāĻžāĻāĻ˛ā§ āĻāĻŋāĻā§ āĻ āĻĒāĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻĒā§āĻ¯āĻŧā§āĻāĻŋ, āĻāĻ āĻĢāĻžāĻāĻ˛āĻāĻŋāĻā§ āĻ āĻĄāĻŋāĻ āĻĒā§āĻ˛ā§āĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻāĻ°ā§āĻāĻŋāĨ¤ āĻ¸ā§āĻāĻžāĻā§āĻ¯āĻŦāĻļāĻ¤, āĻāĻ¸āĻāĻŋāĻāĻāĻ˛ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻā§āĻ¨āĻāĻŋāĻ¨ā§āĻ¸ā§āĻ° āĻŽāĻ¤ā§ āĻāĻāĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻāĻžāĻ āĻāĻ°ā§āĻāĻŋāĻ˛, āĻāĻāĻŋ āĻāĻ°āĻāĻŽ āĻāĻŋāĻā§ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛:
CREATE procedure AuditUpload
@id int, @filename varchar(256)
as
set nocount on
declare @sql varchar(max)
CREATE TABLE #multi (filer NVARCHAR(MAX))
set @sql='BULK INSERT #multi FROM '''+@filename
+''' WITH (ROWTERMINATOR = '' '',CODEPAGE = ''ACP'')'
exec (@sql)
select @sql=filer from #multi
update JenkinsAudit set multiliner=@sql where ID=@id
return
āĻāĻāĻāĻžāĻŦā§, āĻāĻŽāĻ°āĻž āĻŦāĻŋāĻ¸āĻŋāĻĒāĻŋ āĻĢāĻžāĻāĻ˛āĻāĻŋ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖāĻ°ā§āĻĒā§ āĻāĻŋāĻ˛ā§ āĻĢā§āĻ˛āĻŋ āĻāĻŦāĻ āĻāĻāĻŋāĻā§ āĻ āĻĄāĻŋāĻ āĻā§āĻŦāĻŋāĻ˛ā§āĻ° nvarchar(āĻ¸āĻ°ā§āĻŦā§āĻā§āĻ) āĻĢāĻŋāĻ˛ā§āĻĄā§ āĻ¨āĻŋāĻ¯āĻŧā§ āĻ¯āĻžāĻāĨ¤ āĻ āĻŦāĻļā§āĻ¯āĻ, āĻāĻ āĻĒā§āĻ°ā§ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽāĻāĻŋ āĻŦāĻŋāĻā§āĻāĻŋāĻ¨ā§āĻ¨ āĻšāĻ¯āĻŧā§ āĻā§āĻā§, āĻāĻžāĻ°āĻŖ āĻāĻāĻāĻŋ āĻāĻ¸āĻāĻŋāĻāĻāĻ˛ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§āĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§ āĻāĻŽāĻŋ āĻāĻ°āĻĄāĻŋāĻāĻ¸ āĻĒā§āĻ¯āĻŧā§āĻāĻŋ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻ˛ā§ āĻāĻāĻā§āĻāĻŋāĻ¯āĻŧāĻž āĻ˛āĻ āĻ¨ā§āĻāĻ¯āĻŧāĻžāĻ° āĻĒā§āĻ°āĻā§āĻˇā§āĻāĻžāĻ° āĻāĻžāĻ°āĻŖā§ āĻāĻāĻāĻ¨āĻ¸āĻŋ-āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻŦāĻžāĻ˛ā§āĻ āĻāĻ¨āĻ¸āĻžāĻ°ā§āĻ āĻŽā§āĻā§āĻ āĻāĻžāĻ āĻāĻ°ā§ āĻ¨āĻž, āĻāĻŦāĻ āĻāĻ°āĻĄāĻŋāĻāĻ¸ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻ§ā§āĻŦāĻāĻ¸ āĻšāĻ¯āĻŧā§ āĻ¯āĻžāĻ¯āĻŧ āĻāĻā§āĻŦāĻžāĻ°ā§ āĻļā§āĻ°ā§ āĻ¤āĻžāĻ āĻāĻŽāĻŋ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻĄāĻŋāĻāĻžāĻāĻ¨ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻžāĻ° āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨āĻŋāĻ¯āĻŧā§āĻāĻŋ, āĻ˛āĻžāĻāĻ¨ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ āĻĄāĻŋāĻ āĻ˛āĻžāĻāĻ¨ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻāĻŋ:
CREATE TABLE AuditOut (
ID int NULL,
TextLine nvarchar(max) NULL,
n int IDENTITY(1,1) PRIMARY KEY
)
āĻāĻŦāĻ āĻāĻ āĻā§āĻŦāĻŋāĻ˛ā§ āĻāĻ āĻŽāĻ¤ āĻ˛āĻŋāĻā§āĻ¨:
function WriteAudit([string]$Filename, [string]$ConnStr,
[string]$Tabname, [string]$Jobname)
{
# get $lastid of the last execution -- ĐŋŅĐžŅĐēиĐŋĐ°ĐŊĐž Đ´ĐģŅ ŅŅĐ°ŅŅи
#create grid and populate it with data from file
$audit = Get-Content $Filename
$DT = new-object Data.DataTable
$COL1 = new-object Data.DataColumn;
$COL1.ColumnName = "ID";
$COL1.DataType = [System.Type]::GetType("System.Int32")
$COL2 = new-object Data.DataColumn;
$COL2.ColumnName = "TextLine";
$COL2.DataType = [System.Type]::GetType("System.String")
$DT.Columns.Add($COL1)
$DT.Columns.Add($COL2)
foreach ($line in $audit)
{
$DR = $dt.NewRow()
$DR.Item("ID") = $lastid
$DR.Item("TextLine") = $line
$DT.Rows.Add($DR)
}
# write it to table
$conn=new-object System.Data.SqlClient.SQLConnection
$conn.ConnectionString = $ConnStr
$conn.Open()
$bulkCopy = new-object ("Data.SqlClient.SqlBulkCopy") $ConnStr
$bulkCopy.DestinationTableName = $Tabname
$bulkCopy.BatchSize = 50000
$bulkCopy.BulkCopyTimeout = 0
$bulkCopy.WriteToServer($DT)
$conn.Close()
}
āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°āĻ¤ā§, āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻāĻĄāĻŋ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§, āĻā§āĻ°āĻŽ n (āĻĒāĻ°āĻŋāĻāĻ¯āĻŧ) āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°ā§āĨ¤
āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§ āĻāĻŽāĻŋ āĻāĻ°āĻ āĻŦāĻŋāĻļāĻĻā§ āĻ¯āĻžāĻŦ āĻ¯ā§ āĻā§āĻāĻžāĻŦā§ āĻāĻāĻŋ āĻā§āĻ¨āĻāĻŋāĻ¨ā§āĻ¸ā§āĻ° āĻ¸āĻžāĻĨā§ āĻŽāĻŋāĻĨāĻ¸ā§āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻ°ā§āĨ¤
āĻāĻ¤ā§āĻ¸: www.habr.com