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

 如果你的連數據庫名字都沒有改的話。就肯定報錯的


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM