2013-07-15 115 views
1

VARCHAR我需要添加一堆C#代碼來測試對一個表中的值。直接連接到數據源是不可能的(這需要是靜態代碼)。SQL Server的選擇 - 含列名和值

輸出是

X.AddColumn("ColumnName",ColumnValue); 

我想獲得一個SQL語句,爲表返回上面的圖案,上市行中的每一列,通過表中的每一行迭代。

我希望在我可以複製和粘貼的結果集的數據庫select語句,理想的情況是,通過列去動態地救了我做類似下面的東西我想輸出的每個表。

SELECT 'X.AddColumn("ColumnName1", ' + CONVERT(VARCHAR, ColumnName1, 100) +');' AS Col1 
... 
'X.AddColumn("ColumnNameN", ' + CONVERT(VARCHAR, ColumnNameN, 100) +');' AS ColN 
FROM 
Schema.Table1 

回答

2

我的頭頂部,這是兩個步驟:

運行下面的語句。它將爲每個表的列的查詢(像select 'x.AddColumn("Column1", ' + Convert(varchar, Column1, 100) +')' from dbo.Table1

SELECT 'select ''x.AddColumn("' + c.column_name 
     + '", ''+ Convert(varchar, ' + c.column_name 
     + ',100)+'')'' from ' + c.table_schema + '.' 
     + c.table_name 
FROM information_schema.columns c 
WHERE c.table_name = 'Table1' 
     AND c.table_schema = 'dbo' 

複製上面的語句的輸出並運行它。它應該給你所需的輸出。

+0

感謝,我想答案可能是這樣。我只是希望有可能是一個一步到位的查詢,但我想我可以選擇此答案爲'VARCHAR(MAX)'和使用動態SQL執行。 – SeeMoreGain