現在、テーブルaからテーブルbに情報をコピーするSPを作成しています。私が直面している問題は、コピーされる情報が表cで自由に定義できることです。したがって、例:テーブルaには、test nvarchar(50)、test1 nvarchar(79)、beta2 nvarchar(80)、およびidintの列があります。
設定テーブルでは、列testとtest1をテーブルaからテーブルbにコピーする必要があると定義されています。
列がすでに存在するかどうかのチェックを含めました。次の行で失敗します。
DECLARE @dataType nvarchar(100)
DECLARE @statement nvarchar(250)
set @dataType =
SELECT c.*, s.name
FROM sys.columns c
INNER JOIN sys.objects o
ON c.object_id = o.object_id
INNER JOIN sys.types s
ON c.user_type_id = s.user_type_id
WHERE o.name = 'a' AND c.name = 'test'
set @Statement = 'Alter table dbo.t_hist_Devicereport add test ' + @dataType
exec (@Statement)
エラーメッセージは、近くの構文が正しくないことですSELECT
が、SELECTステートメントを単独で実行すると、非常に正常に機能します...問題が発生する可能性がある場合に備えてSQLServer2005を使用しています