我在一个表中插入了两条记录。
create table num(id int)
insert into num values(0023)
insert into num values(23)
select * from num
Run Code Online (Sandbox Code Playgroud)
当我查询它们时,它们都显示为23. 这意味着 SQL Server 忽略前导 0。这背后的机制是什么?我如何让 SQL Server 在我插入它们时返回值(即0023和23)?
我在 SQL Server 中声明了一个变量: Declare @variable
当我不需要变量时,如何删除或启用它?
我了解到索引视图保存来自基表的数据,而标准视图不保存数据。这是否意味着索引视图需要内存而标准视图不需要?
索引视图需要与架构对象绑定。我也对架构绑定对象中不允许使用“*”这一点感到困惑。例如:
create view viewname as select * from tablename
Run Code Online (Sandbox Code Playgroud)
上面的说法是行不通的。为什么?
我听说 SQL Server 中函数和存储过程的区别在于函数不存储在数据库中,而存储过程存储在数据库中。
真的吗?如果不是,它们之间有什么区别?
另外,我知道存储过程只编译一次,然后直接执行。函数呢?
我WAITFOR在以下脚本中与游标结合使用:
create table orders(orderId int primary key,productId int,productName varchar(20));
insert into orders values(1,11,'book');
insert into orders values(2,13,'flower');
insert into orders values(3,24,'microwave');
insert into orders values(4,7,'food');
insert into orders values(5,46,'clothes');
declare cur cursor for
select * from orders;
open cur;
fetch next from cur;
while(@@fetch_status=0)
begin
waitfor delay '00:00:01';
fetch next from cur;
end;
close cur;
deallocate cur;
Run Code Online (Sandbox Code Playgroud)
我希望每 1 秒的指定间隔显示来自光标的一条记录。例如:显示第一行,然后等待一秒钟;显示第二行,然后稍等;等等。上面的光标不会这样做。说orders有 5 行。该WHILE块等待 5 秒钟,然后一起显示所有记录。
这是游标的错吗?如何修改此脚本以按预期工作?