2012-01-12 78 views
1

我已經爲「Modern_Spanish_CI_AS」數據庫生成存儲過程腳本。我在一臺具有「SQL_Latin1_General_CP1_CI_AS」排序規則的服務器上運行該腳本,但在具有「Modern_Spanish_BIN」排序規則的另一臺服務器中,該腳本因爲某些變量被聲明爲@userLogin(或其他)並且使用了@userlogin而失敗。股vs無上限存儲過程生成的腳本的sql server整理

沒有區別腳本是這樣的:

EXEC dbo.sp_executesql @statement = N'my sp body'

或腳本是這樣的:

CREATE PROCEDURE [dbo].MySpName

我已經執行以下操作以確保數據庫排序規則是正確的:

SELECT DATABASEPROPERTYEX('MyDatabase','collation');/*returns "Modern_Spanish_CI_AS"*/

我不允許更改服務器排序規則。

我能做些什麼(除了改變成千上萬的表達式的情況),以便成功運行腳本並確保sp將正常工作?而且,當sp試圖比較varchar值時,會在運行時產生影響嗎?

在此先感謝

回答

1

您必須更改上千表達的情況下,汲取教訓,並在今後的始終測試代碼中區分大小寫的排序規則服務器。

+0

一個體面的文本編輯器應該可以幫助您查找/替換,即使是區分大小寫 – StingyJack 2012-01-12 18:32:42

+0

謝謝,您幫了很大忙 – 2012-01-12 21:12:32