这句不对
参照下面这段
declare @num int,@sqls nvarchar(4000)
set @sqls='select @a=count(*) from syscolumns '
exec sp_executesql @sqls,N'@a int output',@num output
select @num
注意类型要用nvarchar
declare @sql nvarchar(1000),@id int,@n varchar(10)
set @n='abc'
set @sql=N'if exists(select 1 from '+cast(@n as varchar)+' where fcourseNO is null or fcourseNO>=''0000'') set @out=1 else set @out=0'
exec sp_executesql @sql,N'@out int output',@id output
select @id
类似这个 自己组字符串
代码如下:
--创建测试表CREATE TABLE [Identity](
Id INT IDENTITY(1,2) NOT NULL PRIMARY KEY,--种子的起始值1,步长2
Number VARCHAR(20) UNIQUE NOT NULL,
Name VARCHAR(20) NOT NULL,
Password VARCHAR(20) DEFAULT(123),
Description VARCHAR(40) NULL
)
--插入记录
INSERT INTO [Identity](Number,Name,Description) VALUES('001','1st','Id=1,因为起始值1')
INSERT INTO [Identity](Number,Name,Description) VALUES('002','2nd','Id=3,因为起始值1,步长2')
INSERT INTO [Identity](Number,Name,Description) VALUES('003','3rd','Id=5,由于字符长度超长,报错插入失败,造成此Id产生后被放弃')
INSERT INTO [Identity](Number,Name,Description) VALUES('004','4th','Id=7 not 5,因为第三条记录插入失败')
--检索记录,查看结果
SELECT * FROM [Identity]
第一步:创建sequence;create sequence test_seq
increment by 1
start with 4
maxvalue 1800
minvalue 4
cache 4
解释:创建名为test_seq的sequence,从4开始,每次增加1,最大值是1800,最小值是4,cache 4 表示会缓存四个序列号,比如4、 5、 6、 7。
第二步:sql语句插入,每次插入一次就会根据增加规则自动递增。
sql:insert into tablename(id) values(test_seq.nextval)
解释:第一次插入的id为 4,再次执行为5,依次类推
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)