マルチスキーマデータベース での使用このスクリプトは、私はこのエラーを受け取ったとき、私は、SQLで2 charachterを交換しようとしている:無効なオブジェクト名「Table_2」
メッセージ208、レベル16、状態1、行1無効なオブジェクト名 'PayPersonAccounts'。メッセージ208、レベル16、状態1、行1無効なオブジェクト 名前 'PayPersonAccounts'。メッセージ208、レベル16、状態1、行1無効 オブジェクト名 'CMRDirectDeliveryPartHeader'
USE Test
DECLARE @Table NVARCHAR(MAX),@Column NVARCHAR(MAX)
DECLARE Table_Cursor CURSOR
FOR
SELECT T.name, /* Table */
C.name /* Column */
FROM sysobjects T,syscolumns C
WHERE T.id = C.id AND T.xtype = 'u' /* User Table */
AND (C.xtype = 99 /* ntext */
OR C.xtype = 35 /* text */
OR C.xtype = 231 /* nvarchar */
OR C.xtype = 167 /* varchar */
OR C.xtype = 175 /* char */
OR C.xtype = 239 /* nchar */)
OPEN Table_Cursor FETCH NEXT FROM Table_Cursor INTO @Table,@Column
WHILE (@@FETCH_STATUS = 0)
BEGIN
EXEC ('Update [' + @Table + '] Set [' + @Column + '] = REPLACE(REPLACE(CAST([' + @Column + '] as nvarchar(max)), NCHAR(1610), NCHAR(1740)), NCHAR(1603), NCHAR(1705))')
FETCH NEXT FROM Table_Cursor INTO @Table,@Column
END CLOSE Table_Cursor
DEALLOCATE Table_Cursor
をチェックしようとすると、あなたは、スキーマ名を確認することはできますか?おそらくスキーマは異なるかもしれません。 –
schemaname.tablenameを使用するのが常にベストです –
小さなコメント:計算カラムではどうしますか?それらもここで選択されます。可能であれば、 'QUOTENAME'と' CONCAT'を使用してください。ちょうどもっときれいに見えます。 – Jens