我只是想知道這是否可能,我試圖更新/插入到列但我想能夠選擇列名到變量中,並像這樣:SQL Server - 列名作爲變量
DECLARE @Col
SET @Col = (SELECT TOP 1 somecolumnname FROM mytable)
INSERT INTO someothertable
(ID, @Col) --This is the part I'm querying
SELECT
ID,
SomeData
FROM yetanothertable
我只是想知道這是否可能,我試圖更新/插入到列但我想能夠選擇列名到變量中,並像這樣:SQL Server - 列名作爲變量
DECLARE @Col
SET @Col = (SELECT TOP 1 somecolumnname FROM mytable)
INSERT INTO someothertable
(ID, @Col) --This is the part I'm querying
SELECT
ID,
SomeData
FROM yetanothertable
DECLARE @Col as Varchar(100)
SET @Col = (SELECT TOP 1 somecolumnname FROM mytable)
DECLARE @SQL AS VARCHAR(500)
SET @SQL = 'INSERT INTO someothertable'
SET @SQL = @SQL + '(ID,' + @Col + ')'
SET @SQL= @SQL + ' SELECT ID, SomeData FROM yetanothertable'
EXEC(@SQL)
你爲什麼要這麼做?
DECLARE @Col varchar(100), @SQL varchar(1000)
SET @Col = (SELECT TOP 1 somecolumnname FROM mytable)
set @SQL='
INSERT INTO someothertable
(ID, '[email protected]+')
SELECT
ID,
SomeData
FROM yetanothertable'
EXEC(@SQL)
因爲我收到很多很多可怕的數據,我需要報告,我認爲這個數據庫是由某種機智設計。 – 2015-02-09 13:12:25
使整個查詢動態sql – 2015-02-09 13:04:04
你不能那樣做。你可以做什麼@mmhasannn說,使所有動態SQL。 – 2015-02-09 13:04:49
這通常表示數據模型有問題 - 不應該有多個包含相同「數據類型」的列,因此嘗試參數化您正在使用的列是有意義的(也不會有多個表包含相同類型的數據) – 2015-02-09 13:07:57