1: select @Key=c.name from syscolumns a,sysconstraints b,sysobjects c where a.id=object_id('a') and a.name='a' and a.id=b.id and b.constid=c.id and c.name like 'PK%' 2: exec sp_fulltext_table 'dali','create','My_FullDir',@Key 如果一起执行则 报错:服务器: 消息 15600,级别 15,状态 1,过程 sp_fulltext_table,行 24 为过程 'sp_fulltext_table' 指定的参数或选项无效。若先执行1则1成功,再执行2,则报错: 服务器: 消息 137,级别 15,状态 2,行 1 必须声明变量 '@Key'。就是定义的饿临时变量@Key没法用该怎么办呢?
declare @key varchar(1000)select @Key=c.name from syscolumns a,sysconstraints b,sysobjects c where a.id=object_id('a') and a.name='a' and a.id=b.id and b.constid=c.id and c.name like 'PK%' exec sp_fulltext_table 'dali','create','My_FullDir',@Key
你不懂声明变量吗?declare @a int set @a=1 select @a这和: declare @a int go set @a=1 select @a你不懂变量是局部变量吗?
我当然知道了,你没明白我的意思。在SQL 的查询器里 你一次性执行 declare @Key sysname select @Key=c.name from syscolumns a,sysconstraints b,sysobjects c where a.id=object_id('a') and a.name='a' and a.id=b.id and b.constid=c.id and c.name like 'PK%' exec sp_fulltext_table 'dali','create','My_FullDir',@Key报错:服务器: 消息 15600,级别 15,状态 1,过程 sp_fulltext_table,行 24 为过程 'sp_fulltext_table' 指定的参数或选项无效。如果你先执行 declare @Key sysname select @Key=c.name from syscolumns a,sysconstraints b,sysobjects c where a.id=object_id('a') and a.name='a' and a.id=b.id and b.constid=c.id and c.name like 'PK%' 再执行 exec sp_fulltext_table 'dali','create','My_FullDir',@Key 时,报错:服务器: 消息 137,级别 15,状态 2,行 1 必须声明变量 '@Key'。 问你为什么? 麻烦你了
C:\Program Files\Microsoft SQL Server\MSSQL\Binn
目录下拷备 textcopy.exe到:
C:\Program Files\Microsoft SQL Server\80\Tools\Binn2、必须建立好sp_textcopy过程
CREATE PROCEDURE sp_textcopy (
@srvname varchar (30),
@login varchar (30),
@password varchar (30),
@dbname varchar (30),
@tbname varchar (30),
@colname varchar (30),
@filename varchar (30),
@whereclause varchar (40),
@direction char(1))
AS
DECLARE @exec_str varchar (255)
SELECT @exec_str =
'textcopy /S ' + @srvname +
' /U ' + @login +
' /P ' + @password +
' /D ' + @dbname +
' /T ' + @tbname +
' /C ' + @colname +
' /W "' + @whereclause +
'" /F ' + @filename +
' /' + @direction
EXEC master..xp_cmdshell @exec_str
go
declare @Key sysname
1: select @Key=c.name from syscolumns a,sysconstraints b,sysobjects c where a.id=object_id('a') and a.name='a' and a.id=b.id and b.constid=c.id and c.name like 'PK%' 2: exec sp_fulltext_table 'dali','create','My_FullDir',@Key 如果一起执行则 报错:服务器:
消息 15600,级别 15,状态 1,过程 sp_fulltext_table,行 24
为过程 'sp_fulltext_table' 指定的参数或选项无效。若先执行1则1成功,再执行2,则报错:
服务器: 消息 137,级别 15,状态 2,行 1
必须声明变量 '@Key'。就是定义的饿临时变量@Key没法用该怎么办呢?
你这段代码试了吗?
set @a=1
select @a这和:
declare @a int
go
set @a=1
select @a你不懂变量是局部变量吗?
declare @Key sysname
select @Key=c.name from syscolumns a,sysconstraints b,sysobjects c where a.id=object_id('a') and a.name='a' and a.id=b.id and b.constid=c.id and c.name like 'PK%'
exec sp_fulltext_table 'dali','create','My_FullDir',@Key报错:服务器: 消息 15600,级别 15,状态 1,过程 sp_fulltext_table,行 24
为过程 'sp_fulltext_table' 指定的参数或选项无效。如果你先执行
declare @Key sysname
select @Key=c.name from syscolumns a,sysconstraints b,sysobjects c where a.id=object_id('a') and a.name='a' and a.id=b.id and b.constid=c.id and c.name like 'PK%'
再执行
exec sp_fulltext_table 'dali','create','My_FullDir',@Key
时,报错:服务器: 消息 137,级别 15,状态 2,行 1
必须声明变量 '@Key'。
问你为什么?
麻烦你了