我目前正在创建一个 SP,它将信息从表 a 复制到表 b 中。我面临的问题是可以在表 c 中自由定义将要复制的信息。例如:表 a 有列 test nvarchar(50)、test1 nvarchar(79)、beta2 nvarchar(80) 和 id int
在设置表中,定义列 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 语句,它工作得很好......我正在使用 SQL Server 2005,以防出现问题