1
我目前正在創建一個SP,將表a中的信息複製到表b中。 我面臨的問題是,將複製的信息可以在表c中自由定義。 因此,例如: 表一個具有它被定義的列測試和TEST1應的列測試爲nvarchar(50),TEST1爲nvarchar(79),β2-爲nvarchar(80)和ID INTT-SQL複製現有的列信息
在設置表從表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這可能是一個問題
謝謝你的提示,這是否意味着我需要創建的是有一個長度的所有類型的情況下(如爲nvarchar,NCHAR ...)在定義?除此之外,類型定義並不完全相同,它是nvarchar(100)而不是nvarchar(50),但我認爲我可以用它排序或生活:) – nja
@nja是的,你需要檢查所有類型有一個長度;)可能檢查字符串的長度。 –