【问题标题】:Want to see inserted data in SQL Server with column name and its value想要在 SQL Server 中查看插入的数据以及列名及其值
【发布时间】:2016-08-18 04:20:53
【问题描述】:

想在 SQL Server 中查看插入的数据以及每个列的名称及其值,我正在使用 INSERT / UPDATE 的存储过程,就像这样。

例如,mode = 'insert':

Insert into Employee_table(Name, Age, DOB, salary) 
values (@Name, @Age, @DOB, @salary)

现在我想看看:

insert into Employee_table(Name, Age, DOB, salary)
values ('Arun', 23, 12-12-2016, 10000)

【问题讨论】:

  • 只有在存储过程实际运行时,这些变量才会有值和上下文。难道你不能检查你的表,看看是否插入了正确的记录?
  • 如果你看到这个,你必须自己做“参数替换”魔法,因为 SQL Server 会永远 实际上可以看到您的INSERT 的第二个版本 - SQL Server 将接收 with 参数的查询,以及参数列表和值,并且永远不会替换@Age 23 在实际 SQL 代码中...
  • 感谢您的信息

标签: sql sql-server sql-insert


【解决方案1】:

SQL Server 直接不提供任何 UI 来捕获所有 DML/DDL 操作的实时值。但是,这可以解决,如下所示,

  1. 使用所有 DML 语句创建动态查询,并在每个语句的末尾添加一个 Print 语句(虽然这是一项乏味的工作)
  2. 登录到 SQL Profiler 并自定义/过滤输出以跟踪 SQL 语句

【讨论】:

    【解决方案2】:

    这对我来说很奇怪,但我认为你可以尝试:

    Insert into Employee_table(Name, Age, DOB, salary) 
    OUTPUT inserted.*
    values (@Name, @Age, @DOB, @salary)
    

    【讨论】:

      【解决方案3】:
          Try this.
      
      
          Create Procedure Proc_Insert_Employee_Table
          (
            @Name varchar(50),
            @Age int, 
            @DOB date, 
            @salary int
          )
          as
          Begin
      
          set nocount on
      
              Insert into Employee_table(Name, Age, DOB, salary) 
          values (@Name, @Age, @DOB, @salary)
      
          print 'Insert into Employee_table(Name, Age, DOB, salary) 
          values ('+@Name+','+cast(@Age as varchar)+','+cast(@DOB as varchar)+','+cast(@salary as varchar)+')'
      
      END
      

      【讨论】:

      • 永远欢迎。
      猜你喜欢
      • 2017-10-12
      • 2023-03-31
      • 1970-01-01
      • 2019-06-03
      • 1970-01-01
      • 1970-01-01
      • 2020-03-19
      • 1970-01-01
      • 2011-05-13
      相关资源
      最近更新 更多