zoukankan      html  css  js  c++  java
  • SQL 2008 TSQL支持表变量参数(转)

     最近装了VS2010尝鲜。在Win7下速度明显快了很多。顺便装了Microsoft sql server 2008 R2,在看SQL 2008T-SQL语法的增强的时候注意到了一个表变量作为参数传递的新语法觉得很不错。

      首先建立一张测试表:

    CREATE TABLE [dbo].[us](
        [id] [int] IDENTITY(1,1) NOT NULL,
        [name] [varchar](50) NULL,
        [pass] [varchar](50) NULL,
     CONSTRAINT [PK_us] PRIMARY KEY CLUSTERED 
    (
        [id] ASC
    )WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
    ) ON [PRIMARY]

    定义一个自定义表类型:

     

    CREATE TYPE [dbo].[UsTable] AS TABLE(
        [id] [int] IDENTITY(1,1) NOT NULL,
        [NAME] [varchar](50) NULL
    )

    然后我们写一个存储过程来传递这个类型,这里我们模拟用户批量添加默认密码为123

     

    CREATE  PROC [dbo].[addus]
     @tab [UsTable] READONLY
    AS
    BEGIN  
         INSERT INTO us(name,pass) SELECT name,'123' FROM @tab
    END

     

    测试一下:

     

    –-定义一个自定义表类型的变量
    DECLARE @us UsTable 
    --插入模拟数据
    INSERT INTO @us (name) VALUES ('dc')
    INSERT INTO @us (name) VALUES ('ada')
    INSERT INTO @us (name) VALUES ('dacey')
    --执行存储过程
    EXEC dbo.addus @tab = @us

     查询us表看下是否都插入进去了:
      1 dc 123
      2 ada 123
      3 dacey 123

  • 相关阅读:
    .net中使用JQuery Ajax判断用户名是否存在的方法
    简单的SqlHelper
    C#中邮件的发送基本操作
    身份证号码组成 含代码
    C#和asp.net中链接数据库中 参数的几种传递方法
    【转】iptables 命令介绍
    sed的替换命令
    【转】sed 的参数
    【转】sed正则表达式
    【转】shell中如何判断一个变量是否为空
  • 原文地址:https://www.cnblogs.com/timy/p/3056263.html
Copyright © 2011-2022 走看看