2013-07-10 33 views
1

在SQL Server Management Studio中創建一個新的查詢,然後我運行下面的代碼:本着創建SQL查詢打破了一個字符串

select dbName.dbo.ScalarFunction() 
union 
select dbName2.dbo.ScalarFunction() 

然後我嘗試從我的C#做同樣的事情程序。不過,我無法將上述內容翻譯成一個查詢字符串。我曾嘗試以下,但沒有成功:

string QueryString = @"select dbName.dbo.ScalarFunction() /r/n union /r/n select dbName2.dbo.ScalarFunction()" 

string QueryString = @"select dbName.dbo.ScalarFunction(); union; select dbName2.dbo.ScalarFunction();" 

string QueryString = @"select dbName.dbo.ScalarFunction(); union select dbName2.dbo.ScalarFunction();" 

我是很新的SQL所以如果有人能幫助我正確的語法我會非常高興!提前致謝!

+0

我不認爲你必須有一個分界線,當你工會查詢。 –

+0

「沒有任何成功」:請說明會發生什麼。運行時錯誤消息? – ToolmakerSteve

+0

我沒有收到任何錯誤消息。不過,我只收到第一次選擇的數據,其餘的只是忽略了 – Robin

回答

4

我不認爲你需要擔心換行

@"select dbName.dbo.ScalarFunction() union select dbName2.dbo.ScalarFunction()" 
+0

這個解決方案從一開始就是最明顯的解決方案,但它在SSMS中不起作用,所以我放棄了它,而沒有在我自己的程序中先測試它。傻我。無論如何,感謝您的幫助! – Robin

3

回車應該是\r\n而不是/r/n

您還可以使用Environment.NewLine

不管怎麼說,正如在其他的答案說,你不應該在SQL

擔心換行符
+0

好的工作,發現那個錯誤。 – ToolmakerSteve

+0

夠公平的。仍然不是所需的結果...:/ – Robin

4

如果你使用的是逐字條紋ng(即與開口報價之前的@符號定義),那麼你可以直接按回車鍵在定義的中間,例如:

string QueryString = @"select dbName.dbo.ScalarFunction() 
union 
select dbName2.dbo.ScalarFunction()";