[英]T-SQL Copy existing Column information
我當前正在創建一個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,以防出現問題
DECLARE @dataType nvarchar(100)
DECLARE @statement nvarchar(250)
SELECT @dataType = CASE WHEN s.name = 'nvarchar' THEN 'nvarchar(' + CAST(c.max_length AS varchar(4)) + ')' ELSE s.name END
FROM sys.tables t JOIN sys.columns c ON t.object_id = c.object_id
JOIN sys.types s ON c.user_type_id = s.user_type_id
WHERE t.name = 'a' AND c.name = 'test'
SET @Statement = 'Alter table dbo.t_hist_Devicereport add test ' + @dataType
EXEC sp_executesql @Statement
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.