标签: sql-server

如何在动态sql语句中使用表变量?

在我的存储过程中,我在我的过程之上声明了两个表变量.现在我试图在动态sql语句中使用该表变量,但是在执行该过程时出现此错误.我正在使用Sql Server 2008.

这是我的查询的样子,

set @col_name =  'Assoc_Item_' 
              + Convert(nvarchar(2), @curr_row1);

set @sqlstat = 'update @RelPro set ' 
             + @col_name 
             + ' = (Select relsku From @TSku Where tid = ' 
             + Convert(nvarchar(2), @curr_row1) + ') Where RowID = ' 
             + Convert(nvarchar(2), @curr_row);

Exec(@sqlstat);
Run Code Online (Sandbox Code Playgroud)

我得到以下错误,

必须声明表变量"@RelPro".必须声明表变量"@TSku".

我试图在动态查询的字符串块之外取表,但无济于事.

sql sql-server dynamic-sql table-variable sql-server-2008

61
推荐指数
4
解决办法
16万
查看次数

为sql查询设置默认架构

有没有办法为查询设置模式,以便在查询的其余部分中,我可以仅通过名称引用表而不用模式名称添加它们?

例如,我想做这样的事情:

Use [schemaName]
select * from [tableName]
Run Code Online (Sandbox Code Playgroud)

与此相反:

select * from [schemaName].[tableName]
Run Code Online (Sandbox Code Playgroud)

sql sql-server schema

61
推荐指数
3
解决办法
13万
查看次数

如何在SQL Azure数据库中创建新用户?

我想使用以下模板:

-- =================================================
-- Create User as DBO template for SQL Azure Database
-- =================================================
-- For login <login_name, sysname, login_name>, create a user in the database
CREATE USER <user_name, sysname, user_name>
    FOR LOGIN <login_name, sysname, login_name>
    WITH DEFAULT_SCHEMA = <default_schema, sysname, dbo>
GO

-- Add user to the database owner role
EXEC sp_addrolemember N'db_owner', N'<user_name, sysname, user_name>'
GO
Run Code Online (Sandbox Code Playgroud)

我想创建一个名为user1的用户,密码为'user1pass'.我连接了我的默认数据库'authentication',我打开了一个查询窗口.

但模板对我来说没有意义.例如什么是sysname,我在哪里提供密码以及我应该使用什么作为default_schema?

特定用户需要有能力做所有事情.但是如何设置它以便他可以做任何事情,如果我让用户成为数据库所有者,那该怎么办呢?

到目前为止,我尝试过:

CREATE USER user1, sysname, user1
    FOR LOGIN user1, sysname, user1
    WITH DEFAULT_SCHEMA = dbo, sysname, dbo
GO …
Run Code Online (Sandbox Code Playgroud)

sql-server azure azure-sql-database

61
推荐指数
5
解决办法
8万
查看次数

在Sql Server 2008中截断/清除表变量

是否可以在sql server 2008中截断或清除表变量?

Declare @tableVariable table
(
   id int, 
   value varchar(20)
)


while @start<=@stop

  begin

    insert into @tableVariable(id,value) 
    select id
         , value 
      from xTable 
     where id=@start

   --Use @tableVariable 

   --@tableVariable should be flushed out of 
   -- old values before inserting new  values

    set @start = @start + 1 
  end 
Run Code Online (Sandbox Code Playgroud)

sql sql-server

61
推荐指数
4
解决办法
8万
查看次数

是否有MySql的Profiler等效文件?

"Microsoft SQL Server Profiler是SQL Trace的图形用户界面,用于监视数据库引擎或Analysis Services的实例."

我发现使用SQL Server Profiler在开发,测试和调试数据库应用程序问题时非常有用.有人知道MySql是否有相应的程序吗?

mysql database sql-server

60
推荐指数
6
解决办法
6万
查看次数

使用SQL Server配置Lucene.Net

有没有人使用Lucene.NET而不是使用sql server附带的全文搜索?

如果是这样,我会对你如何实现它感兴趣.

您是否编写了一个每小时查询数据库的Windows服务,然后将结果保存到lucene.net索引?

sql-server lucene.net

60
推荐指数
1
解决办法
2万
查看次数

exec失败,因为名称不是有效的标识符?

我有一个查询,我需要将其作为动态查询运行,以输出有意义的列名称.例如,如果我直接运行查询,它会正确返回数据.但是,如果我使用下面的代码,它会显示:

The name '
            SELECT (CASE WHEN A.Domain IS NOT NULL THEN A.Domain ELSE B.Domain END) AS [Domain], 
                    (CASE WHEN A.Email IS NOT NULL THEN A.Email ELSE B.Email END) AS [Email], 
                    A.[Sender Size] AS [Sender Size 1], A.[Sender Count] AS [Sender Count 1],
                        A.[Receiver Size] AS [Receiver Size 1], A.[Receiver Count] AS [Receiver Count 1],
                    A.[Sender Size 2] AS [Sender Size 2], A.[Sender Count 2] AS [Sender Count 2],
                        A.[Receiver Size 2] AS [Receiver Size 2], A.[Receiver Count 2] AS …
Run Code Online (Sandbox Code Playgroud)

sql sql-server sql-server-2008

60
推荐指数
1
解决办法
10万
查看次数

SQL使用空字符串进行合并

我有以下内容:

     Select Coalesce(Other,Industry) Ind from registration
Run Code Online (Sandbox Code Playgroud)

问题是其他可以是空字符串或NULL.如何使cowellce工作,如果Other是一个空字符串,Coalesce仍然应该按照它应该的行为?

sql sql-server

60
推荐指数
3
解决办法
4万
查看次数

尽管每列使用varchar(MAX),导入CSV文件时SQL Server中的错误

我正在尝试将大型CSV文件(几个演出)插入SQL Server,但是一旦我通过导入向导并最终尝试导入该文件,我会收到以下错误报告:

  • 执行(错误)消息错误0xc02020a1:数据流任务1:数据转换失败.列""标题""的数据转换返回状态值4和状态文本"文本被截断或一个或多个字符在目标代码页中不匹配.".(SQL Server导入和导出向导)

  • 错误0xc020902a:数据流任务1:"源 - Train_csv.Outputs [平面文件源输出] .Columns ["Title"]"失败,因为发生了截断,截断行处置"Source - Train_csv.Outputs [Flat File Source]输出] .Columns ["Title"]"指定截断失败.指定组件的指定对象上发生截断错误.(SQL Server导入和导出向导)

  • 错误0xc0202092:数据流任务1:在数据行2上处理文件"C:\ Train.csv"时发生错误.(SQL Server导入和导出向导)

  • 错误0xc0047038:数据流任务1:SSIS错误代码DTS_E_PRIMEOUTPUTFAILED.Source - Train_csv上的PrimeOutput方法返回错误代码0xC0202092.当管道引擎调用PrimeOutput()时,组件返回失败代码.失败代码的含义由组件定义,但错误是致命的,管道停止执行.在此之前可能会发布错误消息,其中包含有关失败的更多信息.(SQL Server导入和导出向导)

我创建了表格以首先插入文件,并且我将每列设置为保存varchar(MAX),所以我不明白我怎么仍然有这个截断问题.我究竟做错了什么?

sql sql-server csv

60
推荐指数
1
解决办法
15万
查看次数

#temptable和## TempTable之间的区别?

能否请您解释之间的差异#temptable,并##TempTable在SQL Server中.我搜索了这个,但找不到任何答案.

请帮我解决这个问题

sql-server temp

60
推荐指数
5
解决办法
6万
查看次数