我对 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 是 SQL Server 中的保留关键字或关键字。只需将名称更改为其他名称。避免像 [TRUNCATE] 那样将 [ ] 放在它周围
Use some other name for the procedure instead of Truncate
e.g. use trucateMyTable
Reason:
Truncate
is a key word and
A variable/procedure/function name can not be a keyword.