當我使用變數名創建資料庫時,我想創建存盤程序。
為了創建我的資料庫,在我撰寫的腳本頂部USE [master] GO。
在我想在新資料庫中創建存盤程序但無法在查詢中指定資料庫后,如下所示:
DECLARE @DB_NAME sysname
select @DB_NAME = valeur from #vars WHERE nom = 'DB_NAME' /*Nom de la base de données*/
SET @SqlCommand = 'CREATE PROCEDURE ' @DB_NAME '.[dbo].[sp_DEFRAG_Index]
@Pourcent int = 30.0
AS BEGIN
錯誤 :
訊息 166,級別 15,狀態 1,行 317
“CREATE/ALTER PROCEDURE”不允許將資料庫名稱指定為物件名稱的前綴。
uj5u.com熱心網友回復:
您可以sp_executesql動態呼叫,即:您可以創建一個包含'DB_NAME.sys.sp_executesql然后呼叫的值EXEC @name @params
DECLARE @DB_NAME sysname;
select @DB_NAME = valeur
from #vars
WHERE nom = 'DB_NAME'; /*Nom de la base de données*/
DECLARE @SqlCommand nvarchar(max) = '
CREATE PROCEDURE [dbo].[sp_DEFRAG_Index]
@Pourcent int = 30.0
AS
';
DECLARE @spexecute nvarchar(1000) = QUOTENAME(@DB_NAME) '.sys.sp_executesql';
EXEC @spexecute @SqlCommand;
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/485772.html
下一篇:將數字和小數轉換為INT
