私はSQLにまったく慣れていないので、次のコードがタイトルにエラーを生成している理由がわかりません。
CREATE PROCEDURE Truncate (@table varchar(50))
AS
BEGIN
SET NOCOUNT ON;
EXEC ('TRUNCATE TABLE ' + @table);
END
私はSQLにまったく慣れていないので、次のコードがタイトルにエラーを生成している理由がわかりません。
CREATE PROCEDURE Truncate (@table varchar(50))
AS
BEGIN
SET NOCOUNT ON;
EXEC ('TRUNCATE TABLE ' + @table);
END
Truncateは予約語であるため、引用符で囲まれていないプロシージャ名では使用できません。あなたはこれを行うことができます:
CREATE PROCEDURE dbo.[Truncate] (@table varchar(50))
AS BEGIN
SET NOCOUNT ON;
EXEC ('TRUNCATE TABLE ' + @table);
END
しかし、あなたがそれを実行するとき、あなたは言わなければならないでしょう
dbo.[Truncate] 'tablename'
または、プロシージャの名前をTruncateTableに変更します。
CREATE PROCEDURE dbo.TruncateTable (@table varchar(50))
AS BEGIN
SET NOCOUNT ON;
EXEC ('TRUNCATE TABLE ' + @table);
END
その後、あなたはそれを次のように呼ぶことができます
EXEC TruncateTable 'tablename'
TRUNCATE
はキーワードなので、プロシージャに別の名前を付ける必要があります。例:
CREATE PROCEDURE TruncateTable (@table varchar(50))
AS
BEGIN
SET NOCOUNT ON;
EXEC ('TRUNCATE TABLE ' + @table);
END
TRUNCATEは、SQLServerで予約されているキーワードです。名前を別の名前に変更するだけです。[TRUNCATE]のように[]をその周りに配置することは避けてください
Truncate
例を使用する代わりに、プロシージャに他の名前を使用しますtrucateMyTable
理由:
Truncate
キーワードであり、
変数/プロシージャ/関数名をキーワードにすることはできません。