在我的存储过程中,我在我的过程之上声明了两个表变量.现在我试图在动态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".
我试图在动态查询的字符串块之外取表,但无济于事.
有没有办法为查询设置模式,以便在查询的其余部分中,我可以仅通过名称引用表而不用模式名称添加它们?
例如,我想做这样的事情:
Use [schemaName]
select * from [tableName]
Run Code Online (Sandbox Code Playgroud)
与此相反:
select * from [schemaName].[tableName]
Run Code Online (Sandbox Code Playgroud) 我想使用以下模板:
-- =================================================
-- 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 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) "Microsoft SQL Server Profiler是SQL Trace的图形用户界面,用于监视数据库引擎或Analysis Services的实例."
我发现使用SQL Server Profiler在开发,测试和调试数据库应用程序问题时非常有用.有人知道MySql是否有相应的程序吗?
有没有人使用Lucene.NET而不是使用sql server附带的全文搜索?
如果是这样,我会对你如何实现它感兴趣.
您是否编写了一个每小时查询数据库的Windows服务,然后将结果保存到lucene.net索引?
我有一个查询,我需要将其作为动态查询运行,以输出有意义的列名称.例如,如果我直接运行查询,它会正确返回数据.但是,如果我使用下面的代码,它会显示:
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) 我有以下内容:
Select Coalesce(Other,Industry) Ind from registration
Run Code Online (Sandbox Code Playgroud)
问题是其他可以是空字符串或NULL.如何使cowellce工作,如果Other是一个空字符串,Coalesce仍然应该按照它应该的行为?
我正在尝试将大型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),所以我不明白我怎么仍然有这个截断问题.我究竟做错了什么?
能否请您解释之间的差异#temptable,并##TempTable在SQL Server中.我搜索了这个,但找不到任何答案.
请帮我解决这个问题
sql-server ×10
sql ×6
azure ×1
csv ×1
database ×1
dynamic-sql ×1
lucene.net ×1
mysql ×1
schema ×1
temp ×1