zoukankan      html  css  js  c++  java
  • SQL Server 的动态语句(SQLServer 的String.format用法)(SQLServer的调用SQL占位符的使用)

    直接上代码好了:


    --建表语句
    if exists(select 1 from [你的测试数据库名字].sys.tables where name='TDepartment')
    BEGIN print '不存在该数据表,创建后继续操作'
    CREATE TABLE [TDepartment](
    [t_id] [int] IDENTITY(1,1) NOT NULL,
    [name] [nvarchar](50) NULL,
    [code] [nvarchar](50) NULL
    ) ON [PRIMARY]
    end
    else
    BEGIN
    print '存在该数据库,继续操作'
    end
    GO

    --声明下面使用的变量
    declare @depart_name_num int
    declare @depart_name_code int
    declare @sql nvarchar(225)

    declare @convert_num nvarchar(225)
    declare @convert_code nvarchar(225)
    --
    set @depart_name_num=0
    set @depart_name_code=0

    while(@depart_name_num<10)
    begin
    --这里是为了转换变化的数字为字符拼接
    set @convert_num = 'name:'+CONVERT(nvarchar(225),@depart_name_num)
    set @convert_code = 'code:'+CONVERT(nvarchar(225),@depart_name_code)

    print '@convert_num'+@convert_num
    set @sql = 'insert into TDepartment(name,code) values(@p1,@p2)'
    --因为拼接实在太麻烦了。所以才用占位变量
    --set @sql = 'insert into [TDepartment](name,code) values(''value:'+@convert_num+''','''+@depart_name_code+''')'
    print '@sql:1'+@sql

    --这里就相当于java的为占位变量赋值
    --@params是指明占位变量的类型,这里的是一行全写那些变量类型
    --@p1,@p2是是自定义两边来的。只要上下名称对上。就行。
    exec SP_EXECUTESQL
    @stmt = @sql ,
    @params = N'@p1 as nvarchar(225),@p2 as nvarchar(225)',
    @p1 = @convert_num,
    @p2 = @convert_code

    print '@sql:2'+@sql

    set @depart_name_num=@depart_name_num+1
    set @depart_name_code=@depart_name_code+1

    end

     如果你的连数据库名字都没有改的话。就肯定报错的

  • 相关阅读:
    剑指offer--面试题14--收获
    剑指offer--面试题14
    剑指offer--面试题13
    剑指offer--面试题12
    剑指offer--面试题11
    高质量代码
    剑指offer--面试题10--相关
    剑指offer--面试题10
    位运算及其操作
    负数在计算机中的表示方法
  • 原文地址:https://www.cnblogs.com/shortboy/p/3860724.html
Copyright © 2011-2022 走看看