Khi chạy SQLCMD.exe và cung cấp đối số dòng lệnh cho biến tập lệnh, tôi hy vọng rằng giá trị được cung cấp trên dòng lệnh sẽ ghi đè những giá trị được xác định trong tệp tập lệnh SQL.SQLCMD, biến dòng lệnh và tập lệnh: setvar
ví dụ:
Với Script SQL sau:
:setvar XXX "SQL script"
print '$(XXX)'
Và dòng lệnh:
sqlcmd.exe -S <Server> -d <Database> -E -b -i <Script> -v XXX="Batch script"
Tôi hy vọng sản lượng là:
hàng loạt kịch bản
Tuy nhiên sản lượng là:
SQL script
Đây có phải là ý định, hoặc phải các :setvar
báo cáo trong kịch bản SQL được gỡ bỏ?
Tôi đã cung cấp câu lệnh :setvar
trong tập lệnh, vì vậy tôi có thể chỉnh sửa/kiểm tra tập lệnh trong SQL Management Studio bằng chế độ SQLCMD, nhưng chạy tập lệnh từ dòng lệnh trong môi trường thử nghiệm và sản xuất của mình.
Điều đó thật tuyệt! Cảm ơn – VirtualStaticVoid
Điều đó thực sự sucks! Tôi nhận thấy rằng đề xuất về Microsoft Connect đã được mở trong năm 2008 và nó vẫn hoạt động. Vâng, tôi đã bình chọn cho nó anyway, mặc dù hy vọng của tôi không phải là rất cao. –
http://www.codeproject.com/Articles/1019661/Powershell-Scripts-to-Replace-setvar-Variable-in-S – Kody