首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

'@tbname' 附近有语法异常

2013-08-23 
'@tbname' 附近有语法错误。DECLARE @tbname nvarchar(30)SET @tbname0exp_corpIF OBJECT_I

'@tbname' 附近有语法错误。


DECLARE @tbname nvarchar(30);
SET @tbname='0exp_corp';
IF OBJECT_ID(@tbname)>0 
DROP TABLE @tbname;



消息 102,级别 15,状态 1,第 4 行
'@tbname' 附近有语法错误。


是为了把MySQL 的DROP TABLE IF EXISTS 0exp_corp 转换为SQL Server查询语句。
但是这里却报错了。 MySQL SQL
[解决办法]
DECLARE @tbname nvarchar(30);
SET @tbname='0exp_corp';
DECLARE @sql NVARCHAR(max)
IF OBJECT_ID(@tbname)>0 
SET @sql='DROP TABLE '+@tbname
EXEC (@sql)
[解决办法]

DECLARE @tbname nvarchar(30);
SET @tbname='0exp_corp';
IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(@tbname) AND type in (N'U'))
exec (N'DROP TABLE '+@tbname);
GO

[解决办法]
DECLARE @tbname nvarchar(30);
SET @tbname='tb';

IF OBJECT_ID(@tbname, 'u') IS NOT NULL--OBJECT_ID函数应该用IS NOT NULL来判断,且一般加上'U'参考,表示用户表
--DROP TABLE @tbname;--参数查询不能是表名,可以是字段值和top中的数值:select top (@count) @fieldvalue, field2 from tableName where id > @id
EXEC('DROP TABLE '+ @tbname)--任何时候,想让表名动态,就只能拼SQL,用EXEC或up_executesql来执行。
GO

热点排行