2013-11-02 109 views
0

我有一個SQL腳本,像下面的一些變量SQL串連查詢字符串

declare @endDate datetime 
declare @whereClause nvarchar(MAX) 

set @whereClause = ' where endDate < ''' + @endDate + '''' 

而這裏的SQL SELECT語句:

select * form TableName 

我想要做的是加入@whereClause和選擇語句,因此其結果應該是

select * from TableNamewhere endDate < ''2013/11/2'' 

我使用下面的語句加入次嘗試e兩個字符串,但出現錯誤

'+'附近的語法不正確。

下面的腳本有什麼問題?或者我怎樣才能加入這兩個字符串?

select * from TableName + @whereClause 

回答

2

您可以通過使用兩個varchar變量來實現這一點;一個用於SELECT,另一個用於WHERE子句。

即:

DECLARE @select AS nvarchar(max) 
SET @select = 'SELECT * FROM TableName' 

SET @select = @select + @whereClause 
+0

但我怎麼能執行@select nvarchar的變量? – User2012384

+0

您可以使用sp_executesql: 'EXEC sp_executesql @ select' 請注意,您必須提供該語句的有效日期才能工作,並且您必須將日期轉換爲varchar值。 – SchmitzIT