2016-04-17 73 views
1

如何在sql查詢中使用自定義函數來設置某個變量的值。如何在sql查詢中設置變量的值

我的功能是:

function myFunc(par){return par;} 

我的SQL查詢:

const string query = 
      @" 
      DECLARE @result varchar(100) 
      SET @result= myFunc(N'test') 

      INSERT[dbo].[TempTable] ([Name]) 
      VALUES (@result) 
      "; 
+0

您使用的是什麼版本的SQL? –

+0

2014 btw此代碼是寫入遷移,而不是在Configuration.cs類 – ruud

+0

在SQL Server中,您需要在調用該函數時指定模式名稱。 。 。 'dbo.myfunc(N'test')'。 –

回答

1

你只需要指定此功能屬於架構。假設它是在架構dbo,只是改變這一行:

SET @result= myFunc(N'test') 

SET @result= dbo.myFunc(N'test') 

如果你喜歡,你可以直接從函數輸出將整個查詢的一半大小 - 無@需要的變量:

INSERT INTO dbo.TempTable (Name) 
SELECT dbo.myFunc(N'test') 
+0

我這樣做,並得到以下錯誤:**無法找到任何列「myFunc」或用戶定義的函數或聚合「myFunc」,或名稱是模糊的** – ruud

+0

我已更新我的答案;我立即回答並誤解了問題所在。戈登·林諾夫在他的評論中是正確的。 –