问下一下的sql~

anqini 2008-09-17 08:55:32

USE Application_db_S
GO
IF OBJECT_ID(N'#tempTable',N'U') IS NOT NULL
drop table #tempTable;
go
USE Application_db_S
go

SET NOCOUNT ON

SELECT * INTO #tempTable from dbo.MDTEN;

declare @w_Val int

select @w_Val = count(*) from #tempTable;

print @w_Val
go


这个第一次运行没问题,但是第2次运行的时候老说这个临时表存在
我这不是假如存在的话删除吗?

我是从msdn拷过来的

顺便问一下,(N'#tempTable',N'U')的N是什么意思?
还有,object_id为一个参数的时候我明白,两个参数的时候是什么意思?谢谢
...全文
115 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
linux_ch 2008-09-17
  • 打赏
  • 举报
回复
當指定暫存資料表名稱時,除非目前資料庫是 tempdb,否則,資料庫名稱必須在暫存資料表名稱前面。例如:SELECT OBJECT_ID('tempdb..#mytemptable')。

OBJECT_ID(N'object_name',N'object_type ')。
object_name 是 varchar 或 nvarchar。如果 object_name 是 varchar,它會隱含地轉換成 nvarchar。資料庫和結構描述名稱的指定是選擇性的。object_type 是 varchar 或 nvarchar。如果 object_type 是 varchar,它會隱含地轉換成 nvarchar
hyde100 2008-09-17
  • 打赏
  • 举报
回复
如果字符串里包含中文、日文等unicode大字符集的字符,字符串自动在内部使用unicode格式(一个字符占两个字节)。但是如果仅仅包含常规 ascii字符,字符串默认只用ascii格式表示(一个字符占一个字节)。因此'[dbo].[dfdd]'是12个字节的短字符串,而N'[dbo].[dfdd]'是24个字节的长字符串。但是,某些SQL Server过程的输入参数要求必须是unicode字符串,有的时候能够自动对 ascii字符串转换,有的时候需要你明确传入unicode字符串。
mustudent 2008-09-17
  • 打赏
  • 举报
回复
還真富有一個問題發兩帖
hyde100 2008-09-17
  • 打赏
  • 举报
回复
USE Application_db_S
GO
IF OBJECT_ID('tempdb..#tempTable') IS NOT NULL
drop table #tempTable;
go
---------------------------------------------
顺便问一下,(N'#tempTable',N'U')的N是什么意思?
N代表这字符串为Unicode字符串----------------------------------------------
还有,object_id为一个参数的时候我明白,两个参数的时候是什么意思?
两个参数后面那个代表你要查的对象的类型,相当于多了一个判断条件
dawugui 2008-09-17
  • 打赏
  • 举报
回复
USE Application_db_S
GO
IF OBJECT_ID('tempdb..#tempTable') IS NOT NULL
drop table #tempTable;
go
青锋-SS 2008-09-17
  • 打赏
  • 举报
回复
SET NOCOUNT ON

SELECT * INTO #tempTable from dbo.MDTEN;

declare @w_Val int

select @w_Val = count(*) from #tempTable;

print @w_Val

drop table #tempTable;

go
dawugui 2008-09-17
  • 打赏
  • 举报
回复
USE Application_db_S
GO
IF OBJECT_ID('Application_db_S..#tempTable') IS NOT NULL
drop table #tempTable;
go
pt1314917 2008-09-17
  • 打赏
  • 举报
回复

IF OBJECT_ID(N'#tempTable',N'U') IS NOT NULL
drop table #tempTable;
go

--改为:
IF OBJECT_ID(N'tempdb.dbo.#tempTable') IS NOT NULL
drop table #tempTable;
go
go

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧