在工作中的SSIS包中,有一些SQL任务可以创建用于保存导入数据的登台表.所有陈述都采用以下形式:
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'dbo.tbNewTable') AND type in (N'U'))
BEGIN
TRUNCATE TABLE dbo.tbNewTable
END
ELSE
BEGIN
CREATE TABLE dbo.tbNewTable (
ColumnA VARCHAR(10) NULL,
ColumnB VARCHAR(10) NULL,
ColumnC INT NULL
) ON PRIMARY
END
Run Code Online (Sandbox Code Playgroud)
在Itzik Ben-Gan的T-SQL基础知识中,我看到了一种用于创建表的不同形式的语句:
IF OBJECT_ID('dbo.tbNewTable', 'U') IS NOT NULL
BEGIN
DROP TABLE dbo.tbNewTable
END
CREATE TABLE dbo.tbNewTable (
ColumnA VARCHAR(10) NULL,
ColumnB VARCHAR(10) NULL,
ColumnC INT NULL
) ON PRIMARY
Run Code Online (Sandbox Code Playgroud)
这些中的每一个似乎都做同样的事情.执行后,dbo架构中会有一个名为tbNewTable的空表.
这两者之间是否有任何实际或理论上的差异?他们可能会有什么影响?
| 归档时间: |
|
| 查看次数: |
140 次 |
| 最近记录: |