SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS OFF GO CREATEPROCEDURE[dbo].[SimpleXTab]@XFieldvarChar(20), @XTablevarChar(20), @XWhereStringvarChar(250), @XFunctionvarChar(10), @XFunctionFieldvarChar(20), @XRowvarchar(40) AS Declare@SqlStrnvarchar(4000) Declare@tempsqlnvarchar(4000) Declare@SqlStrCurnvarchar(4000) Declare@colnvarchar(100) set@SqlStrCur= N'Select ['+@XField+'] into ##temptbl_Cursor from ['+@XTable+'] '+@XWhereString+' Group By ['+@XField+']' GO
以NorthWind举例说明使用情况: 先建个View:
SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO CREATEVIEW dbo.vw_SampleQuery AS SELECT dbo.Orders.ShipName, dbo.Categories.CategoryName, dbo.Orders.ShipCountry, (dbo.[Order Details].UnitPrice * dbo.[Order Details].Quantity) * (1- dbo.[Order Details].Discount) AS OrderAmt FROM dbo.Orders INNERJOIN dbo.[Order Details]ON dbo.Orders.OrderID = dbo.[Order Details].OrderID INNERJOIN dbo.Products ON dbo.[Order Details].ProductID = dbo.Products.ProductID INNERJOIN dbo.Categories ON dbo.Products.CategoryID = dbo.Categories.CategoryID GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO