查询结果放入临时表
--select * into #temp from (sql查询语句)T
--drop table #temp(临时表用完记得删除)
--对于主表中数据如果存在历史数据 最好使用 left join,不至于使历史数据丢失,对于为空列可以使用 isnull默认值设置
--isnull(表查询列名,'默认值') 或者 isnull(表查询列名,sql查询语句)
表变量
DECLARE @temp TABLE (
FORM_NO INT,
SEQ INT,
ITEM_CODE NVARCHAR(4),
ITEM_DESC NVARCHAR(500),
CATEGORY_CODE NVARCHAR(3),
CATEGORY_DESC NVARCHAR(500),
EVN_ACC CHAR(1),
select * from @temp
判断对象存在与否,若存在,先删除再创建
IF EXISTS (SELECT *
FROM sysobjects
WHERE id = Object_id('ENV_ACCFormData'))
DROP TABLE ENV_ACCFormData
ELSE
CREATE TABLE ENV_ACCFormData
(
ID INT IDENTITY(1, 1) NOT NULL,
FORM_Kind NVARCHAR(30) NOT NULL,
FORM_NO INT NOT NULL,
SEQ INT NOT NULL,
ACCItem NVARCHAR(4) NOT NULL,
[Type] NVARCHAR(1) NOT NULL
)
--select * into #temp from (sql查询语句)T
--drop table #temp(临时表用完记得删除)
--对于主表中数据如果存在历史数据 最好使用 left join,不至于使历史数据丢失,对于为空列可以使用 isnull默认值设置
--isnull(表查询列名,'默认值') 或者 isnull(表查询列名,sql查询语句)
表变量
DECLARE @temp TABLE (
FORM_NO INT,
SEQ INT,
ITEM_CODE NVARCHAR(4),
ITEM_DESC NVARCHAR(500),
CATEGORY_CODE NVARCHAR(3),
CATEGORY_DESC NVARCHAR(500),
EVN_ACC CHAR(1),
[type] CHAR(1));
将存储过程执行结果放入表变量
select * from @temp
判断对象存在与否,若存在,先删除再创建
IF EXISTS (SELECT *
FROM sysobjects
WHERE id = Object_id('ENV_ACCFormData'))
DROP TABLE ENV_ACCFormData
ELSE
CREATE TABLE ENV_ACCFormData
(
ID INT IDENTITY(1, 1) NOT NULL,
FORM_Kind NVARCHAR(30) NOT NULL,
FORM_NO INT NOT NULL,
SEQ INT NOT NULL,
ACCItem NVARCHAR(4) NOT NULL,
[Type] NVARCHAR(1) NOT NULL
)
多表连接更新
update a set a.Email=b.Email from NTUser20121204 b,NTUser a where a.ID=b.ID