UPDATEコマンドを使用して、テーブルの文字列フィールドにプレフィックスを付けようとしています。どういうわけか私は
文字列型やバイナリは省略されます。
例外として、私のデータの長さはフィールドに簡単に収まりますが。
SQL Server 2008 R2StandardEditionおよびSSMS2008R2を使用します。
テンプレート:学習者はnvarchar(60)です
テンプレート:学習者は、sp_helpに示されているように60バイトを使用するnvarchar(30)です
select LEN('Aaaaaaaa' + LEFT(learner, 52)) myLen from Template order by myLen desc
>>> max len = 31
update Template set learner = 'Aaaaaaaa' + LEFT(learner, 52)
>>> String or binary data would be truncated.
update Template set learner = 'Aaaaaaaa' + LEFT(learner, 52)
>>> String or binary data would be truncated.
update Template set learner = CAST('Aaaaaaaa' + LEFT(learner, 52) AS NVARCHAR(60))
>>> String or binary data would be truncated.
一方、以下は機能します。
SELECT CAST('Aaaaaaaa' + LEFT(learner, 52) AS NVARCHAR(60)) FROM Template