读书人

生手 编写T-SQL代码出错求大神指教

发布时间: 2012-12-29 10:28:09 作者: rapoo

新手 编写T-SQL代码出错求大神指教
本帖最后由 chkhappy 于 2012-12-22 15:27:08 编辑 在sql server 2005 express 上
代码如下

CREATE PROC CreateNameTable
@name CLIENT_NAME
AS
DECLARE @result tinyint,@tableName NVARCHAR(50)
SET @tableName=N'[dbo].[' +@name+ N']'
EXEC @result=CheckForName @name

if(@result = 0)
RETURN 0
ELSE
BEGIN
IF(exists(SELECT * FROM dbo.sysobjects
WHERE id = OBJECT_ID(@tableName)
AND OBJECTPROPERTY(id,'IsUserTable')=1)
)
BEGIN
TRUNCATE TABLE @tableName
END
ELSE
BEGIN
CREATE TABLE @tableName
(
发送到 CLIENT_NAME ,
内容 NVARCHAR(500) NULL,
时间 datetime NOT NULL
)
END
RETURN 1
END

错误如下
Msg 102, Level 15, State 1, Procedure CreateNameTable, Line 17
'TABE' 附近有语法错误。
Msg 102, Level 15, State 1, Procedure CreateNameTable, Line 21
'@name' 附近有语法错误。
[解决办法]

CREATE PROC CreateNameTable
@name CLIENT_NAME
AS
DECLARE @result tinyint,@tableName NVARCHAR(50)
SET @tableName=N'[dbo].[' +@name+ N']'
EXEC @result=CheckForName @name

if(@result = 0)
RETURN 0
ELSE
BEGIN
IF(exists(SELECT * FROM dbo.sysobjects
WHERE id = OBJECT_ID(@tableName)
AND OBJECTPROPERTY(id,'IsUserTable')=1)
)
BEGIN
EXEC('TRUNCATE table '+@tableName)
END
ELSE
BEGIN
EXEC('CREATE TABLE '+@tableName+'
(
发送到 CLIENT_NAME ,
内容 NVARCHAR(500) NULL,
时间 datetime NOT NULL
)')
END
RETURN 1
END

[解决办法]
CREATE PROC CreateNameTable 


@name CLIENT_NAME
AS
DECLARE @result tinyint,@tableName NVARCHAR(50)
SET @tableName=N'[dbo].[' +@name+ N']'
EXEC @result=CheckForName @name

if(@result = 0)
RETURN 0
ELSE
BEGIN
IF(exists(SELECT * FROM dbo.sysobjects
WHERE id = OBJECT_ID(@tableName)
AND OBJECTPROPERTY(id,'IsUserTable')=1)
)
BEGIN
exec ('TRUNCATE TABLE '+@tableName)
END
ELSE
BEGIN
exec('CREATE TABLE '+@tableName+'
(
发送到 CLIENT_NAME ,
内容 NVARCHAR(500) NULL,
时间 datetime NOT NULL
)
')
END
RETURN 1
END


[解决办法]
这个CLIENT_NAME类型是你自己定义的吗?我本地没有这个类型。

读书人网 >SQL Server

热点推荐