SQL中存储过程变量长度

来源:互联网 发布:淘宝宝贝总销量 编辑:程序博客网 时间:2024/05/17 08:25

已下是一个测试表:

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[test_data]'and OBJECTPROPERTY(id, N'IsUserTable'= 1)
drop table [dbo].[test_data]
GO

CREATE TABLE [dbo].[test_data] (
    
[s_id] [bigint] IDENTITY (11NOT NULL ,
    
[s_title] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
    
[s_content] [ntext] COLLATE Chinese_PRC_CI_AS NULL 
ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
1、相关存储过程,功能为指定三个参数,@s_title给出了变量的长度,如下:

CREATE PROCEDURE testUpdate 
@s_title nvarchar(50),
@s_content ntext,
@s_id int
AS
  
UPDATE socut_Data SET s_title=@s_title,s_content=@s_content WHERE s_id=@s_id
GO

如果给出三个参数为:
   set  @s_title='测试数据'
   set  @s_content='测试数据结果正常'
   set  @s_id=1

表最终结果为:
  s_id           s_titel         s_content
   1                测试数据    测试数据结果正常
2、相关存储过程,功能为指定三个参数,@s_title没有给出了变量的长度,如下:
CREATE PROCEDURE testUpdate 
@s_title nvarchar,
@s_content ntext,
@s_id int
AS
  
UPDATE socut_Data SET s_title=@s_title,s_content=@s_content WHERE s_id=@s_id
GO

如果给出三个参数为:
   set  @s_title='测试数据'
   set  @s_content='测试数据结果不正常'
   set  @s_id=1

表最终结果为:
  s_id           s_titel         s_content
   1                测                测试数据结果不正常

 

原创粉丝点击