0
是否可以創建使用FROM
子句中的參數的存儲過程?在FROM子句中使用參數的存儲過程
例如:
CREATE PROCEDURE [dbo].[GetMaxId]
@id varchar(50)
@table varchar(50)
AS
BEGIN
SELECT MAX(@id)
FROM @table
END
是否可以創建使用FROM
子句中的參數的存儲過程?在FROM子句中使用參數的存儲過程
例如:
CREATE PROCEDURE [dbo].[GetMaxId]
@id varchar(50)
@table varchar(50)
AS
BEGIN
SELECT MAX(@id)
FROM @table
END
不能傳遞標識符作爲參數建立成一個查詢(均未表名也不列名)。解決方案是使用動態SQL。您的語法建議使用SQL Server,因此它看起來像這樣:
CREATE PROCEDURE [dbo].[GetMaxId] (
@id varchar(50)
@table varchar(50)
)
AS
BEGIN
DECLARE @sql NVARCHAR(MAX);
SET @sql = N'SELECT MAX(@id) FROM @table';
SET @sql = REPLACE(REPLACE(@sql, '@id', QUOTENAME(@id)), '@table', QUOTENAME(@table));
EXEC sp_executesql @sql;
END; -- GetMaxId
謝謝!那很快。 – Skylake
請用您正在使用的數據庫標記您的問題。 –
[表名作爲變量]可能的重複(http://stackoverflow.com/questions/2838490/table-name-as-variable) –
它是SQL Server。我認爲有人修改了標題使其縮短。 – Skylake